微软自带的Serialization和Newtonsoft简单测试

刚刚对这两个进行了一下小小的测试

发现

当转换的内容少的时候  微软自带的比Newtonsoft速度要快一些,内容多的时候反之,当内容多到一定量的时候微软自带的就不能转换了,需要修改一下MaxJsonLength的默认值,此处我改为:999999999,这个时候可以转换了,不过时间很长。

添加50个对象:

微软自带的Serialization和Newtonsoft简单测试

添加500个对象:

微软自带的Serialization和Newtonsoft简单测试

添加5K对象:

微软自带的Serialization和Newtonsoft简单测试

添加5W对象:

微软自带的Serialization和Newtonsoft简单测试

添加50W对象:

微软自带的Serialization和Newtonsoft简单测试

50W,修改完默认值:

微软自带的Serialization和Newtonsoft简单测试

添加500W 对象:

微软自带的Serialization和Newtonsoft简单测试

添加700W对象:

微软自带的Serialization和Newtonsoft简单测试

微软自带的出不来了,报错了,这次我是把Newtonsoft移到上边了

微软自带的Serialization和Newtonsoft简单测试

添加900W对象:

图1

微软自带的Serialization和Newtonsoft简单测试

图2

微软自带的Serialization和Newtonsoft简单测试

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.Collections;
using System.Diagnostics;
using System.Web.Script.Serialization; namespace JsonNet
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person() { age = , name = "张三", sex = "N" }; List<Person> arr = new List<Person>();
for (int i = ; i < ; i++)
{
arr.Add(p1); }
Stopwatch watch1 = new Stopwatch();
Stopwatch watch2 = new Stopwatch(); watch1.Start();
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
jsSerializer.MaxJsonLength = ;
string str = jsSerializer.Serialize(arr);
Console.WriteLine("Serialization转换时间:" + watch1.Elapsed); watch2.Start();
string strr = JsonConvert.SerializeObject(arr);
Console.Write("Newtonsoft转换时间" + watch2.Elapsed); Console.ReadKey(); }
} public class Person
{
public string name;
public int age;
public string sex; }
}
上一篇:MVC架构中的controller的几种写法


下一篇:C# 判断域名或ip +端口号 是否能连接