Newtonsoft.json中 linq to json 和序列化哪个快?
Newtonsoft.json是最常用的json序列化组件,当然他不是最快的,但是是功能最全的。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
namespace ConsoleApplication2
{
public class Entity
{
public int a;
public bool b = false;
public string s = "asdfgb";
public double d = 123.456;
}
class Program
{
static void Main(string[] args)
{
Stopwatch w = new Stopwatch();
w.Start();
for (int i = 0; i <= 1000; i++)
{
Entity a = new Entity();
a.a = i;
string result = new JObject(new JProperty("a", i),
new JProperty("b", a.b),
new JProperty("s", a.s),
new JProperty("d", a.d)
).ToString();
}
w.Stop();
Console.WriteLine(w.ElapsedMilliseconds);
w.Reset();
w.Start();
for (int i = 0; i <= 1000; i++)
{
try
{
//Entity a = new Entity();
//a.a = i;
string result = JsonConvert.SerializeObject(new
{
a = i,
b = false,
s = "asdfgb",
d = 123.456
});
}
catch (Exception e)
{
}
}
w.Stop();
Console.WriteLine(w.ElapsedMilliseconds);
w.Reset();
w.Start();
for (int i = 0; i <= 1000; i++)
{
try
{
//Entity a = new Entity();
//a.a = i;
string result = string.Format("{a: {0},b:{1},s:{2}},d:{3}",
i, false, "asdfgb", 123.456);
}
catch (Exception e)
{
}
}
w.Stop();
Console.WriteLine(w.ElapsedMilliseconds);
Console.Read();
}
}
}
最终结果整理:
方式: linq 序列化 字符串
100: 28 104 11
1000: 32 108 41
10000: 69 126 337
100000: 425 318 3341
随着次数的增加,估计反射的缓存还是很快的,序列化速度超过了linq to json,拼字符串从最快的变成最慢的
Newtonsoft.json中 linq to json 和序列化哪个快?的更多相关文章
- JSON中JObject和JArray,JValue序列化(Linq)
		
http://blog.csdn.net/lovegonghui/article/details/50293629 一.JObject和JArray序列化 1.实例化JArray和JObject,然后 ...
 - Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer  关于Newtonsoft.Json,LINQ to JSON的一个小demo  mysql循环插入数据、生成随机数及CONCAT函数  .NET记录-获取外网IP以及判断该IP是属于网通还是电信  Guid的生成和数据修整(去除空格和小写字符)
		
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
 - Json.Net 中Linq to JSON的操作
		
Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和 ...
 - [Json.net]Linq to Json
		
引言 上篇学习了json.net的基本知识,这篇学习linq to json. 上篇文章:[Json.net]快速入门 Linq to Json Linq to Json是用来快速操作json对象的, ...
 - 关于Newtonsoft.Json,LINQ to JSON的一个小demo
		
nuget获取Newtonsoft.Json github地址:Newtonsoft.Json public static void Test1() { /* 文本格式如下 代码实现目的: 1.VR ...
 - json中把非json格式的字符串转换成json对象再转换成json字符串
		
JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串
 - 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)
		
转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...
 - c#代码 天气接口  一分钟搞懂你的博客为什么没人看  看完python这段爬虫代码,java流泪了c#沉默了  图片二进制转换与存入数据库相关  C#7.0--引用返回值和引用局部变量  JS直接调用C#后台方法(ajax调用)  Linq To Json  SqlServer 递归查询
		
天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格.  不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...
 - Linq to json
		
Json.Net系列教程 4.Linq To JSON 一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JS ...
 
随机推荐
- 《程序员的自我修养》读书笔记 - dllimport
			
Math.c { __declspec (dllexport) double Add (xx, xx) {...}} MathApp.c { __declspec(dllimport) doub ...
 - Vim 插入递增列
			
<C-a> ++1 <C-x> --1 安装Plugin 'terryma/vim-multiple-cursors'后 <C-v> 选所有数字 <C ...
 - Cannot connect to the Docker daemon. Is the docker daemon running on this host?
			
解决方案 docker-machine restart&&eval "$(docker-machine env default)"&&docker- ...
 - github for windows 安装 使用
			
遇到无数的未知问题.光是安装就搞了好久. 安装程序显示安装了.NET Framework4.5,然后提示重启.重启后,自动开始下载文件,最多到2%就走不动了. 后来请求了下面这个链接,才开始下载了(虽 ...
 - iOS. PercentEscape是错用的URLEncode,看看AFN和Facebook吧
			
别再使用stringByAddingPercentEscapesUsingEncoding 当遇到发送网络请求的参数中有汉字的情况,很多人一股脑地使用stringByAddingPercentEsca ...
 - K线图学习
			
本博文(适合入门的股民朋友)内容来自网络,股市有风险,入市需谨慎 一.起源 K线图(Candlestick Charts)又称蜡烛图.日本线.阴阳线.棒线等,常用说法是“K线”,起源于日本十八世纪德川 ...
 - 谈  CSS  模块化
			
以前看过模块化的相关资料以及解释,对模块化有了一个表皮的了解,自己也做了一些相关的实践,由于接触到的项目交小,所以也没能更好的去体现和理解模块化,但总体还是有那么一些感悟,但是如果要说怎么才能算是好的 ...
 - jQuery extend扩展String原型
			
jQuery.extend(String.prototype, { isPositiveInteger:function(){ return (new RegExp(/^[1-9]\d*$/).tes ...
 - Linux入门之路
			
一.linux简介 Linux前身:Minix,由Andrew S. Tanenbaum教授参考Unix编写 Linux创始人:Linus Torvalds Linux内核版(只有内核)和发行版(在内 ...
 - iOS开发之AFNetworking 3.0.4使用
			
昨天使用Cocoapods导入AFN做POST的时候,导入的最新版的3.0.4,突然发现找不到AFHTTPRequestOperationManager了...上github上一看,发现没有这个了.刚 ...