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

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

发现

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

添加50个对象:

添加500个对象:

添加5K对象:

添加5W对象:

添加50W对象:

 

50W,修改完默认值:

添加500W 对象:

添加700W对象:

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

添加900W对象:

图1

图2

代码如下:

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 = 23, name = "张三", sex = "N" };

            List<Person> arr = new List<Person>();
            for (int i = 0; i < 5000000; i++)
            {
                arr.Add(p1);

            }
            Stopwatch watch1 = new Stopwatch();
            Stopwatch watch2 = new Stopwatch();


            watch1.Start();
            JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
            jsSerializer.MaxJsonLength = 999999999;
            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;

    }
}

 

posted @ 2015-07-02 22:39  xiaoshi657  阅读(2462)  评论(0编辑  收藏  举报