微软自带的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;

    }
}
时间: 2024-12-19 03:53:02

微软自带的Serialization和Newtonsoft简单测试的相关文章

C#.NET序列化XML、JSON、二进制微软自带DLL与newtonsoft(json.net)

序列化是将对象转换成另一种格式(XML.json.二进制byte[]) JSON序列化 .NET中有三种常用的JSON序列化的类,分别是: Newtonsoft.Json.JsonConvert类(推荐) Newtonsoft.Json.JsonConvert类是非微软提供的一个JSON序列化和反序列的开源免费的类库(下载网址是:http://www.codeplex.com/json/),它提供了更灵活的序列化和反序列化控制,并且如果你的开发环境使用的是.NET Framework3.5及以后

C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T:微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式.曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的:当初一度放弃了这个问题.后来突然冷静分析了一下,微软不可能做

微软 自带 AJAX 拓展

<内容有点乱,自己找记忆的~~~> 微软自带AJAX 控件大全:控件简介: ScriptManager 控件 为启用了 AJAX 的 ASP.NET 网页管理客户端脚本. ScriptManagerProxy 控件 允许内容页和用户控件等嵌套组件在父元素中已定义了 ScriptManager 控件的情况下将 脚本和服务引用添加到网页. Timer 控件 在定义的时间间隔执行回发.如果将 Timer 控件和 UpdatePanel 控件结合在一起使用,可以按照定义的间隔启用部分页更新.您还可以使

微软自带输入法用不了

微软拼音输入法用不了 突然有一天微软自带的拼音输入法用不了,在控制台怎样搞都不行,下载了一个搜狗输入法也不行,上网查了一下,查到时候只能输入字母了:shurufayongbule. (蛋疼呀) 解决方法: 打开任务管理器,找到CTF进程 如果找不到(我是找不到的),在启动项找,禁用再启用(或打开文件所在位置)双击重新启动. 哈哈,可爱的输入法回来咯

ESXi内虚拟机带快照与不带快照的情况下简单性能对比.

1. 两个虚拟机配置相同都为2vCPU 8G内存 一个虚拟机内包含较多的快照且有内容梗概 一个虚拟机不包含快照直接只有一个虚拟机的vmdk磁盘文件 操作系统未windows server 2008r2 磁盘测试工具是HDtune 测试结果: 不带快照的机器: 带快照的机器: 简单发现 存取时间多个快照的虚拟机比没有快照的虚拟机多使用了50%的时间. 突发传输速率只有不带快照的虚拟机三分之一 CPU占用率是不带快照的占用几乎三倍. 简单测试认为快照对磁盘IO还是有非常大的影像的, 备注 两个虚拟机

kuangbin带你飞专题一 简单搜索 题解

目录 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题一 简单搜索 总结:用时2天半终于把这个专题刷完了 对于最基础的dfs bfs 路径打印 状态转移也有了一点自己些微的理解 其实2天半可以压缩到1天半的 主要是自己太懒了...慢慢加油刷bin神的专题呀 从大二下学期开始学算法 一开始就知道这个专题 一开始对于这个专题里的所有问题感觉都好难啊..就直接放弃了 看lrj的书 现在看到这个专题还挺唏嘘的吧 突然觉得思维和想法也不是很难 果然是那个时候心不静&还是储量不够吗

C#利用微软自带库进行中文繁体和简体之间的转换的代码

做工程之余,将做工程过程比较重要的代码备份一次,如下资料是关于C#利用微软自带库进行中文繁体和简体之间的转换的代码,应该是对码农有所帮助. protected void Button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txt_value.Text)) { return; } else { string value = txt_value.Text.Trim(); string newValue = Stri

“Junit” 简单测试

junit 测试是一种简单的小测试,以下向大家展示一下如何利用eclipse自带的junit做一个简单的小测试. 新建一个Java project “helloHcs”,简单的输出“Hello HCS” 如图 之后新建一个junit project“junit”,简单的测试一下“helloHcs”Java project 如图: 运行两个project:结果如下: 这是一个非常简单的junit测试.

在vSphere环境下简单测试Windows 2016 S2D (2)

在了解了S2D基本概念及架构以后,我们接下来做一些具体的配置及测试.本实验环境搭在vCenter6.0u2上,配置四台虚机作为S2D的节点,每台虚机的具体配置如下: OS:Windows 2016 datacenter 4 vCPU& 8GB RAM 4 vNics 1个40GB磁盘装OS:另外再添加2 x 50GB(模拟PCIe SSD):2 x 100GB(模拟SSD):4 x 300GB(HDD) 本测试的设想是将模拟的NVMe PCIe SSD磁盘作为读写缓存使用,而把SSD和HDD作为