Giter VIP home page Giter VIP logo

dingxiaowei / nino Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jasonxudeveloper/nino

0.0 1.0 0.0 3.29 MB

Definite useful and high performance modules for C# projects, especially for Unity. 实用的高性能C#模块,尤其在Unity平台能带来令人难以置信的效益。

License: MIT License

Shell 0.36% C++ 1.69% Perl 0.13% C 56.52% C# 32.25% Assembly 0.52% Ada 2.95% Pascal 2.49% SAS 0.06% Makefile 0.53% HTML 0.99% CMake 0.28% DIGITAL Command Language 0.90% Module Management System 0.05% M4 0.03% Roff 0.26%

nino's Introduction

Nino

Definite useful and high performance modules for C# projects, especially for Unity.

实用的高性能C#模块,尤其在Unity平台能带来令人难以置信的效益。

buildlicense

功能列表

  • 共享模块 nino.shared.nuget

    • IO
      • 高性能数据压缩流
      • 数组对象池(线程安全)
      • 基础对象池(线程安全)
      • 二进制流对象池(线程安全)
      • 可动态修改Buffer流(包含不需要分配io_buffer去read/write的方法)
      • 高性能动态扩容Buffer(易用、高效,低GC)性能报告 使用教程
    • Collections
      • 无检查List
      • 无检查Stack
    • Mgr
      • 压缩解压助手
    • Util
      • HashCode计算工具
  • 序列化模块,使用教程 nino.serialization.nuget

    Protobuf-net/MsgPack/BinaryFormatter/Bson/JSON等序列化库的平替方案,优势是更小体积,更高性能,支持多线程,支持多态

    注意,该模块的序列化数据,仅支持在C#平台使用该库进行序列化和反序列化,无法跨语言使用

    Nino.Serialization v1.1.2与其前面所有版本不兼容,详细请查看使用教程

    Nino.Serialization v1.1.0与其前面所有版本不兼容,详细请查看使用教程

    Nino.Serialization v1.0.21.2与其前面所有版本不兼容,详细请查看使用教程(v1.0.21有个Log忘删了,所以补发了v1.0.21.2

    • 测试案例

      • Test1 Nino VS Protobuf-net 序列化

      • Test2 Nino VS BinaryFormatter 序列化

      • Test3 Nino VS Protobuf-net 反序列化

      • Test4 Nino VS BinaryFormatter 反序列化

      • Test5 Nino VS MongoDB.Bson 序列化以及反序列化

      • Test6 Nino VS MsgPack 序列化以及反序列化

      • Test7 自定义Nino序列化反序列化委托

      • Test8 自动收集全部字段进行序列化/反序列化(无需给单个字段或属性打标签)

      • Test9 基础类型序列化反序列化

      • Test10 复杂结构类型序列化反序列化

      • Test11 ILRuntime测试(需要搭配使用教程启用ILRuntime)

      • 真机测试 可以打IL2CPP或Mono包进行测试(对比了Nino Reflection/Code Gen与Protobuf-net/BinaryFormatter/Bson/MsgPack Code Gen的序列化性能、序列化体积、反序列化性能)

        Protobuf-net与Bson在IL2CPP下暂不支持字典序列化

        MsgPack在IL2CPP下不生成代码无法使用

    • 性能报告

    • RoadMap

      • ILRuntime针对性优化(直接操作ILTypeInstance的成员而不是用反射)
      • IL Emit -> 非IL2CPP环境
      • ExpressionTree -> 非IL2CPP环境
      • analyser -> 全局

目录结构

  • Docs,文档
  • src,Nino源码
  • Native,C++代码(用于部分功能)
  • Nino_Unity,Nino Unity 2019及以上版本的工程,包含源码和测试代码
  • Performance,性能报告

在Unity平台使用

有两种方法:

  • 直接下载本工程,并用Unity打开Nino目录进行开发

  • Nino_Unity/Assets/Nino复制到自己的Unity项目即可,如果不需要测试案例的话,可以不包含Nino/Nino/Assets/Nino/Test

    如果需要运行测试案例,记得也需要复制Nino_Unity/Asset/ThirdParty到Unity项目

在非Unity平台使用

  • 使用NuGet

    NuGet里搜Nino就好,目前有Nino.SharedNino.Serialization

    PM> Install-Package Nino.Shared -Version 1.0.15
    PM> Install-Package Nino.Serialization -Version 1.1.2
  • 使用src下的代码(复制进自己项目即可)

nino's People

Contributors

jasonxudeveloper avatar dependabot[bot] avatar veloctor avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.