KJFramework.Messages 高性能二进制消息框架
这是一个非常棒的框架,我们通过使用KJFramework.Message框架来达到自动序列化/反序列化对象
的目的。 只需要简单的两步,就能使你摆脱那些繁琐的过程。
-
还记得.NET中内置提供的序列化/反序列化机制吗?
那样的东西实在是难以接受不是吗? 超低的性能,超大的序列化后字节大小,这样序列化出来的对象
是无法用来做网络传输的!
-
你是否觉得你项目中正在使用的序列化/反序列化机制依然无法满足你的各种需求呢?
快来尝试一下这个项目吧!
-
KJFramework.Message的优点
1. 序列化后的字节数组很小,非常适合网络传输
2. 序列化/反序列化的速度超快(超高的性能)
3. 最低的GC 1~2代回收次数以及GC Time占用率
4. 非常易用的API设计
5. 更干净的代码(更适用于二次开发)
6. 更高效的代码质量以及DEBUG跟进速度(我们会在使用问题上,以及遇到问题的地方为您排忧解难)
还在犹豫吗? 快来尝试一下吧,我们正在努力将KJFramework.Message框架打造为一款.NET平台下,最易用、最高效、可扩展/可定制性极高的对象自动序列化/反序列化解决方案!
- 创始人: 杨杰(Kevin.Kline)
- 以下名单为部分代码贡献者: 张超
智能对象的声明:
//注意, 必须为需要序列化的对象继承自IntellectObject public class TestObject : IntellectObject { [IntellectProperty(0)] public string Name{get; set;} }
序列化:
TestObject obj = new TestObj{Name = "Kevin"}; //序列化类到字节数组. obj.Bind(); /*当然使用者可以选择使用obj.IsBind属性来检查当前的对象是否已经成功的序列化为字节数组 if(obj.IsBind) { //TO DO: anything. } */ //得到序列化好的字节数组 byte[] data = obj.Body;
反序列化:
//我们来说说反序列化吧,更加单 :) //我们接着上面的代码来写。 TestObj newObj = IntellectObjectEngine.GetObject<TestObj>(typeof(TestObj), data);
获取对象描述信息:
*获取对象的描述信息, 将会使我们能够更加简单的将一个对象记录到日志文件中
//我们接着上面的说, 获取对象的描述信息只需要下面的一行
newObj.ToString();
不参与序列化传输的值类型默认值:
*由于我们的框架中新增了"值类型默认值不参与序列化传输"的功能,所以我们为您准备了我们的框架中
所定义的值类型默认值列表。
*引用类型/可空值类型(Nullable ValueType)以及不包含在以下列表中的值类型,都不被这个新功能所支持。
| Type | Default Value |
| bool | false |
| char | \'\0\' |
| byte | 0 |
| sbyte | 0 |
| decimal | 0 |
| short | 0 |
| ushort | 0 |
| int | 0 |
| uint | 0 |
| float | 0 |
| long | 0 |
| ulong | 0 |
| double | 0 |
| DateTime | DateTime.MinValue |
| IntPtr | IntPtr.Zero |
| Guid | Guid.Empty |
| TimeSpan | new TimeSpan(0, 0, 0) |
性能指标(New):
*请注意: 由于性能的提升, 我们在2012年09月20日更新了性能指标!
*此框架的基于.NETFRAMEWORK 4.0开发
*以下测试指标所采用的智能对象为一个结构很复杂的对象, 如果您想了解更多, 请转至以下网址进行查看:
http://www.cnblogs.com/umbrella_yang/archive/2011/11/18/2254414.html
测试平台:
CPU: Intel(R)Xeon(R)CPU X5670 @2.93GHz @2.93GHz (2处理器)
System: Windows Server 2008 R2 Enterprise
序列化复杂对象(DEBUG):
.次数 100000: 970(ms) *此值根据测试机器的配置不同而不同,仅供参考
.Gen0回收次数: 36
.Gen1回收次数: 0
.Gen2回收次数: 0
反序列化复杂对象(DEBUG):
.次数 100000: 563(ms) *此值根据测试机器的配置不同而不同,仅供参考
.Gen0回收次数: 22
.Gen1回收次数: 1
.Gen2回收次数: 0
序列化复杂对象(RELEASE):
.次数 100000: 870(ms) *此值根据测试机器的配置不同而不同,仅供参考
.Gen0回收次数: 30
.Gen1回收次数: 0
.Gen2回收次数: 0
反序列化复杂对象(RELEASE):
.次数 100000: 410(ms) *此值根据测试机器的配置不同而不同,仅供参考
.Gen0回收次数: 22
.Gen1回收次数: 1
.Gen2回收次数: 0
NuGet*
现在, KJFramework.Message框架已经可以在NuGet上被找到啦!
我们建议您使用如下3种方式来进行KJFramework.Message的使用:
1. 项目引用->右键菜单-> 选择(管理NuGet程序包...)->搜索"KJFramework.Message"->下载
2. VS工具菜单项->扩展和更新->搜索"KJFramework.Message"->下载
3. NuGet Command:
(1). 安装: Install-Package KJFramework.Message
(2). 更新: Update-Package KJFramework.Message
转自:http://message.codeplex.com/