C# C解析器性能
我编写了一个JSON解析器,它接受任何有效的JSON字符串并生成哈希表和对象列表 当解析一个100 mb的json文件,其中包含100万个对象,每个对象有4个字段时,它会每秒解析20000个对象,整个文件只需46秒 这看起来好、坏、一般吗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
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的意思是,对您的样本/典型数据运行这些解析器最准确。