C#解析器性能

时间:2011-10-25 15:07:13

标签: c# performance json

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

当解析一个包含100万个对象(每个包含4个字段)的100 mb json文件时,它会在大约20,000个对象/秒内完成,整个文件在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和4 gig ram的桌面上完成的

3 个答案:

答案 0 :(得分:10)

没有背景,这不好也不坏也不平均。就它本身而言,可以将46秒解释为闪电般快速,或者说是慢速。您需要将其与其他JSON解析器进行比较,并计算他们解析相同数据所需的时间。

一旦你决定比竞争更慢或更快,并且你有一些背景,那么你需要决定它是否太慢而无法用于预期用途。

只有这样才能决定表现是好,坏还是平均:)

答案 1 :(得分:1)

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

https://github.com/eishay/jvm-serializers/wiki/

答案 2 :(得分:0)

我在这个GitHub存储库上放弃了一些JSON解析性能测试,以比较我的实验解析器/解串器与JSON.NET 5.0 r8和ServiceStack 3.9.59的性能:

https://github.com/ysharplanguage/FastJsonParser