1. 程式人生 > >比較Json.Net和fastJson的效率

比較Json.Net和fastJson的效率

序列 str com 序列化 stopwatch cond rest 反序列化 true

            var zoo1 = new zoo();

            zoo1.animals = new List<animal>();
            zoo1.animals.Add(new cat());
            zoo1.animals.Add(new dog());

            Stopwatch sw1 = new Stopwatch();
            sw1.Start();
            string ss = "";
            for (int i = 0; i < 1000000; i++)
            {
                ss = Newtonsoft.Json.JsonConvert.SerializeObject(zoo1);
            }

            sw1.Stop();

            Console.WriteLine("Newtonsoft s1:" + sw1.ElapsedMilliseconds);

            sw1.Restart();

            sw1.Start();
            zoo zoo2 = null;
            for (int i = 0; i < 1000000; i++)
            {
                zoo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<zoo>(ss);
            }

            sw1.Stop();

            Console.WriteLine("Newtonsoft d1:" + sw1.ElapsedMilliseconds);

            sw1.Restart();

            string ss1 = "";
            sw1.Start();
            for (int i = 0; i < 1000000; i++)
            {
                ss1 = fastJSON.JSON.ToJSON(zoo1);
            }

            sw1.Stop();
            Console.WriteLine("fastJSON d1:" + sw1.ElapsedMilliseconds);

            sw1.Restart();

            sw1.Start();
            zoo zoo3 = null;
            for (int i = 0; i < 1000000; i++)
            {
                zoo3 = fastJSON.JSON.ToObject<zoo>(ss1);
            }

            sw1.Stop();

            Console.WriteLine("fastJSON d1:" + sw1.ElapsedMilliseconds);

            Thread.Sleep(-1);

 release模式

技術分享圖片

debug模式

技術分享圖片

附註. fastJson還有特性,反序列化之後的zoo3中的兩個animal的類型分別為cat和dog。但是其他的json‘庫都沒有實現這個特性。

比較Json.Net和fastJson的效率