C# C解析器性能

C# C解析器性能,c#,performance,json,C#,Performance,Json,我编写了一个JSON解析器,它接受任何有效的JSON字符串并生成哈希表和对象列表 当解析一个100 mb的json文件,其中包含100万个对象,每个对象有4个字段时,它会每秒解析20000个对象,整个文件只需46秒 这看起来好、坏、一般吗 Stopwatch watch = new Stopwatch(); Console.WriteLine("Starting parser..."); watch.Start(); object

我编写了一个JSON解析器,它接受任何有效的JSON字符串并生成哈希表和对象列表

当解析一个100 mb的json文件,其中包含100万个对象,每个对象有4个字段时,它会每秒解析20000个对象,整个文件只需46秒

这看起来好、坏、一般吗

        Stopwatch watch = new Stopwatch();
        Console.WriteLine("Starting parser...");
        watch.Start();
        object o = JsonParser.Parse(json);
        watch.Stop();
        Console.WriteLine("Stopped parsing...");
        Console.WriteLine("Ms: " + watch.ElapsedMilliseconds);

编辑:该测试是在双核2.6ghz cpu和4G ram的桌面上进行的,没有上下文,它既不好,也不坏,也不平均。就其本身而言,人们可以将这46秒解释为闪电般的快,或者说是狗的慢。您需要将它与其他JSON解析器进行比较,以及它们解析相同数据所需的时间

一旦你决定你比竞争对手慢或快,并且你有了一些背景,你就需要决定它是否太慢,不适合它的预期用途


只有这样,您才能决定性能是好是坏还是一般:

此站点列出了许多具有计时功能的解析器


为了将我的实验解析器/反序列化器的性能与JSON.NET 5.0 r8和ServiceStack 3.9.59的性能进行比较,我在GitHub存储库上放弃了一些JSON解析性能测试:


我没有解析器方面的经验,如果有人有任何与解析任何类型的~100mb文件相关的性能数据,我会感兴趣。Moo的意思是,对您的样本/典型数据运行这些解析器最准确。