我编写了一个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的桌面上完成的
答案 0 :(得分:10)
没有背景,这不好也不坏也不平均。就它本身而言,可以将46秒解释为闪电般快速,或者说是慢速。您需要将其与其他JSON解析器进行比较,并计算他们解析相同数据所需的时间。
一旦你决定比竞争更慢或更快,并且你有一些背景,那么你需要决定它是否太慢而无法用于预期用途。
只有这样才能决定表现是好,坏还是平均:)
答案 1 :(得分:1)
此站点列出了许多具有计时的解析器。
答案 2 :(得分:0)
我在这个GitHub存储库上放弃了一些JSON解析性能测试,以比较我的实验解析器/解串器与JSON.NET 5.0 r8和ServiceStack 3.9.59的性能: