ServiceStack.Text / Newtonsoft.Json 两种json序列化性能比较
JSON序列化现在应用非常多,尤其在前后端分离的情况下,平常大多数C#下都使用Newtonsoft.Json来操作,量少的情况下,还可以忽略,但量大的情况下就要考虑使用ServiceStack.Text来操作,序列化性能差不多,反序列化性能要高一倍左右
int count = ;
User user = new User() { Id = , Name = "tyh", AddTime = DateTime.Now, Age = , Status = true };
string temp = String.Empty;
User user1 = new User();
string temp1 = "{\"Id\": \"2\",\"Name\": \"xxc\",\"AddTime\": \"2016-09-07 10:10:10\",\"Age\": \"15\",\"Status\": \"true\"}";
Stopwatch sw = new Stopwatch();
sw.Restart();
for (int i = ; i < count; i++)
{
temp = ServiceStack.Text.JsonSerializer.SerializeToString(user);
}
sw.Stop();
Response.Write("ServiceStack-Ser:" + sw.ElapsedMilliseconds + "</br>");
sw.Restart();
for (int i = ; i < count; i++)
{
user1 = ServiceStack.Text.JsonSerializer.DeserializeFromString<User>(temp1);
}
sw.Stop();
Response.Write("ServiceStack-Des:" + sw.ElapsedMilliseconds + "</br>");
sw.Restart();
for (int i = ; i < count; i++)
{
temp = Newtonsoft.Json.JsonConvert.SerializeObject(user);
}
sw.Stop();
Response.Write("Newtonsoft-Ser:" + sw.ElapsedMilliseconds + "</br>");
sw.Restart();
for (int i = ; i < count; i++)
{
user1 = Newtonsoft.Json.JsonConvert.DeserializeObject<User>(temp1);
}
sw.Stop();
Response.Write("Newtonsoft-Des:" + sw.ElapsedMilliseconds + "</br>");
Response.End();
以下是测试结果,我只截一个图,其他自行测试吧

现在ServiceStack.Text是收费的了还好是开源,看到了有文章写的可以接触配额限制,转载过来
原文地址:http://blog.csdn.net/hao_ds/article/details/73648130
ServiceStack 4.0 开始已经成为商业产品,不再完全免费,好在是开源的,主要限制免费配额功能在ServiceStack.Text类库下的LicenseUtils.cs文件中,仅需从GitHub上下载源码后添加一行代码重新编译即可解除限制,如下图:

ServiceStack.Text / Newtonsoft.Json 两种json序列化性能比较的更多相关文章
- 【原】iOS学习之XML与JSON两种数据结构比较和各自底层实现
1.XML与JSON两种数据结构的优缺点 1> XML 优点: 格式统一, 符合标准 容易与其他系统进行远程交互, 数据共享比较方便 缺点: XML文件格式文件庞大, 格式复杂, 传输占 ...
- KingbaseES 两表关联Update的两种写法与性能
熟悉oracle 的人都知道,对于两表的关联更新,其执行计划主要有 Filter 和 Outer Join 两种方式.对于大批量数据的update,Join方式明显是更优的选择.KingbaseES ...
- 两种JSON数据类型的解析
son数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
- lua中,两种json和table互转方法的效率比较
lua中json和table的互转,是我们在平时开发过程中经常用到的.比如: 在用lua编写的服务器中,如果客户端发送json格式的数据,那么在lua处理业务逻辑的时候,必然需要转换成lua自己的数据 ...
- 最经常使用的两种C++序列化方案的使用心得(protobuf和boost serialization)
导读 1. 什么是序列化? 2. 为什么要序列化?优点在哪里? 3. C++对象序列化的四种方法 4. 最经常使用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序猿在编写应用程序的时候往往须 ...
- 最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)
导读 1. 什么是序列化? 2. 为什么要序列化?好处在哪里? 3. C++对象序列化的四种方法 4. 最常用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序员在编写应用程序的时候往往需要将 ...
- HashMap 遍历的两种方式及性能比较
HashMap 是Java开发中经常使用的数据结构.相信HashMap 的基本用法你已经很熟悉了.那么我们该如何遍历HashMap 呢?哪种遍历方式的性能更好呢?本篇文章来为你解决这个疑惑. 一.Ha ...
- Redis:存储对象的两种方式(序列化和json字符串)
方式一:序列化操作 public class SerializeUtil { /* * 序列化 * */ public static byte[] serizlize(Object ...
随机推荐
- ps抠图的几种方法
大家经常会遇到抠图的问题,最多的就是抠人体.头发,抠水,抠树,,,自己经过学习总结了下ps抠图方法,有好几种抠图的方法,我只选择了四种好用的与大家分享 1.色彩范围 比如我们要抠图片上的海水,要抠的图 ...
- MYSQL 中 LIMIT 用法
mapper文件中的sql: ------------------------------------------------------------------------------------- ...
- input长度随输入内容动态变化 input光标定位在最右侧
<input type="text" onkeydown="this.onkeyup();" onkeyup="this.size=(this. ...
- vue-cli搭建多页面项目如何配置
这里使用的是webpack模板. 首先安装vue-cli,执行命令 npm install vue-cli -g: 安装完成后初始化一个项目模板:vue init webpack myproject; ...
- 【C++小白成长撸】--矩阵乘法程序
矩阵乘法是大学矩阵课程中,相比矩阵加减法比较困难的部分. 矩阵乘法的原理: 矩阵乘法在代码中实现 得到目标矩阵的一个元素,涉及两个求和符号,一个求和符号一个for循环,两个求和符号两个for循环,再加 ...
- React——state
在React--组件中介绍过组件有两种定义方式:函数形式以及类形式.但是要想在组件中使用state,就必须使用类形式定义组件. 组件中的state是组件私有的,完全由组件自己控制. 使用类形式定义一个 ...
- 团队作业7---Alpha冲刺值事后诸葛
一.设想和目标 1.我们的软件要解决什么问题? 解决教师和助教对实验报告查重的问题,拥有两个用户:1.教师或助教:查看学生实验报告的重复率:4.学生:上传实验报告. 2.是否定义得很清楚?是否对典型用 ...
- 201521123059 《Java程序设计》第七周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 Q1: ArrayList代码分析 1.1 解释ArrayList的contains ...
- 201521123105《jave程序》第二周学习总结
1. 本周学习总结 学习了各种java数据类型以及各种运算符的使用 学习了一维,二维数组的用法 学习了String类对象使用 2. 书面作业 使用Eclipse关联jdk源代码,并查看String对象 ...
- 201521123008《Java程序设计》第11周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问, ...