JSON

谈谈surging 的messagepack、protobuffer、json.net 序列化(2)

字号+ 作者:H5之家 来源:H5之家 2017-11-25 14:37 我要评论( )

/// summary/// 测试/// /summary/// param/parampublic static void Test(IServiceProxyFactory serviceProxyFactory){Task.Run(async () ={var userProxy = serviceProxyFactory.CreateProxyIUserService("User")

/// <summary> /// 测试 /// </summary> /// <param></param> public static void Test(IServiceProxyFactory serviceProxyFactory) { Task.Run(async () => { var userProxy = serviceProxyFactory.CreateProxy<IUserService>("User"); await userProxy.GetUserId("user"); do { Console.WriteLine("正在循环 1w次调用 GetUser....."); //1w次调用 红河乐虎资讯网-- var watch = Stopwatch.StartNew(); for (var i = 0; i < 10000; i++) { var a =userProxy.GetUser(new UserModel { UserId = 1 }).Result; } watch.Stop(); Console.WriteLine($"1w次调用结束,执行时间:{watch.ElapsedMilliseconds}ms"); Console.ReadLine(); } while (true); }).Wait(); }

测试 10 object(注:测试参数传List 集合对象)

/// <summary> /// 测试 /// </summary> /// <param></param> public static void Test(IServiceProxyFactory serviceProxyFactory) { Task.Run(async () => { var userProxy = serviceProxyFactory.CreateProxy<IUserService>("User"); await userProxy.GetUserId("use那曲乐虎资讯网--"); var list = new List<UserModel>(); for(int i=0;i<10;i++) { list.Add(new UserModel { UserId = 1, Age = 18, Name = "fanly" }); } do { Console.WriteLine("正在循环 1w次调用 GetUser....."); //1w次调用 var watch = Stopwatch.StartNew(); for (var i = 0; i < 10000; i++) { var a =userProxy.Get(list).Result; } watch.Stop(); Console.WriteLine($"1w次调用结束,执行时间:{watch.ElapsedMilliseconds}ms"); Console.ReadLine(); } while (true); }).Wait(); }

测试100 object(注:测试参数传List 集合对象)

   测试 Test(IServiceProxyFactory serviceProxyFactory) { Task.Run(async () => { ); ); var list = new List<UserModel>(); for(int i=0;i<100;i++) { list.Add( }); } do { Console.WriteLine(); watch = Stopwatch.StartNew(); for (var i = 0; i < 10000; i++) { var a =userProxy.Get(list).Result; } watch.Stop(); Console.WriteLine($); Console.ReadLine(); } while (true); }).Wait(); }

通过以上测试代码,我们得到了如下的测试结果

通过上图,可以发现messagepack不管是小数据量还是大数据量都保持比较稳定的性能,而json.net 在100object平均已经达到了1.1ms,和messagepack、protobuffer比差太多,而protobuffer在此次测试中表现的极其不稳定只有在1 object 和100 object 性能比较不错,但是与messagepack比还是相差比较大。所以我建议还是使用messagepack,性能上更优,侵入性也非常低

我们来看看性能最优的messagepack 详细测试数据

o object:

1 object:

10 object:

100 object

测试环境

CPU:Intel Core i7-4710MQ

内存:16G

硬盘:1T SSD+512G HDD

网络:局域网

6、总结

surging 已经完成JWT验证和AppSecret验证,下篇文章会详细介绍surging 身份认证,如感兴趣请多关注或者加入QQ群:615562965

当前文章:

发布时间:2017-11-25 11:01:08

                    

{索引池} 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
<