Nino
Definite useful and high performance modules for C# projects, especially for Unity.
实用的高性能C#模块,尤其在Unity平台能带来令人难以置信的效益。
功能列表
-
序列化模块,使用教程
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.Shared
和Nino.Serialization
PM> Install-Package Nino.Shared -Version 1.0.15
PM> Install-Package Nino.Serialization -Version 1.1.2
-
使用src下的代码(复制进自己项目即可)