c#解析器性能

本文关键字:性能 | 更新日期: 2023-09-27 18:12:15

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

解析一个100mb的json文件,其中包含100万个对象(每个对象有4个字段),每秒处理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和4g内存的台式机上完成的

c#解析器性能

如果没有上下文,它既不好,也不坏,也不一般。就其本身而言,人们可以将这46秒理解为闪电般的快,或者像狗一样慢。您需要将其与其他JSON解析器进行比较,并计算它们解析相同数据所需的时间。

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

只有这样你才能决定表现是好、坏还是一般:)

这个站点列出了许多计时的解析器。

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

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

https://github.com/ysharplanguage/FastJsonParser