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 ...
随机推荐
- MySQL命令无法结束
输入完sql语句后 输入分号结束,发现无法结束,原因一般是引号不对称导致的.再输入'; 或者对称的分号就可以结束.
- java 多线程Callable和Runable执行顺序问题详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt125 毫无疑问 Runnable会进行异步执行,此处不多说,主要说明Call ...
- pip 警告!The default format will switch to columns in the future
pip警告! DEPRECATION: The default format will switch to columns in the future. You can use --format=(l ...
- [置顶]
基于FPGA的VGA简易显存设计&NIOS ii软核接入
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...
- 转:【Java并发编程】之一:可重入内置锁
每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁.线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁.获得内置锁的唯一途径就是进入由这个锁保护的同步代码块 ...
- Flask05 cookie
1 什么是cookie 就是网站存放到你浏览器中的一部分固定内容:当你下次访问我这个网站的时候,你会把之前我存放到你浏览器中的数据带回来给我 你要先登录(用户名.密码) -> ...
- Java计算器1.0版
此版本只是设计了页面,还没有实现事件监听 代码: package com.niit.javagui; import java.awt.Button; import java.awt.FlowLay ...
- 201521123055《Java程序设计》第1周学习总结
1. 本章学习总结 (1)JAVA环境配置(JDK,JVM) (2)编写简易程序熟练代码结构 2. 书面作业 1.为什么java程序可以跨平台运行?执行java程序的步骤是什么? JAVA程序需要 ...
- 201521123112《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 线程终止可以使用boolean标志使线程中的run()方法退出. 线程让步使用Thead.yield(). 等待其 ...
- shell脚本命令,一些你在书上找不到的命令。
1.!$<!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串.如:你可能会这样: $mkdir mydir$mv mydir yourdir$cd yourdir 可以改成: $mkd ...