2011-10-25 9 views
-1

有効なjson文字列を受け取り、ハッシュテーブルとオブジェクトリストを生成するJSONパーサーを作成しました。C#パーサーのパフォーマンス

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ギガラム

答えて

10

とデスクトップ上で行われました。それは自分自身では、46秒を稲妻や犬のように遅く感じることができます。他のJSONパーサーと比較し、同じデータを解析するのにどれくらいの時間がかかるかをにしなければなりません。

あなたが競争よりも遅くなったり、速くなったりしていると判断し、コンテキストを持っていると判断したら、意図した用途には遅すぎるかどうかを判断する必要があります。

のみ、あなたはパフォーマンスが、良い悪いか、このサイトでは、タイミングで多くのパーサを示しています:)

+0

私はパーサーの経験がありません。誰かが〜100MBのファイルを解析するのに関連したパフォーマンス番号があれば、私は興味があります。 – OMGKurtNilsen

+4

Mooが言っていることは、**あなたの**サンプル/典型的なデータに対してパーサーを実行するのが最も正確だということです。 –

0

私はJSON.NET 5.0 R8のものに私の実験的なパーサ/デシリアライザの性能を比較するために、このGitHubのリポジトリにいくつかのJSONの解析パフォーマンステストを落とし、そしてServiceStack 3.9.59ました:

https://github.com/ysharplanguage/FastJsonParser

関連する問題