json
for ループを使用して手動で解析される多くのレガシー コードがあります。これにはO(n)
一般的に時間がかかります。json.net
より良いことはわかっていますがtime
、space
それがどのように機能するかについての洞察を得ることは、実際に先に進み、すべてをjson.netに移行するために時間と人力を投資する価値があるかどうかについて、十分な情報に基づいた決定を下すのに役立ちます.
1 に答える
質問をより一般的な質問に言い換えると、さまざまなシナリオでどのJSONシリアル化実装を選択するかについてのアドバイスを探していたと仮定します。
私はこの質問に対する3つの明白な答えを知っています:
- NewtonSoft JSON.NET
- 豊富な機能と優れたパフォーマンスを提供します
- ServiceStack.Text
- シンプルさと燃えるようなパフォーマンスを提供します
- BCLJsonSerializer
- サードパーティのライブラリ依存関係を回避しますが、大幅に遅くなります
サードパーティのライブラリの依存関係を気にしない場合は、パフォーマンスと機能を提供する最初のオプションを選択してください。大量の機能が必要ない場合は、ServiceStack.Textが必要な機能を果たしているかどうかを評価します(不明な場合は、JSON.NETを使用してください)。それ以外の場合は、持っているものを使い続けてください。
また、この特定の領域がパフォーマンスのボトルネックであることがわかる前に、JSONコードを置き換えることによってコードを高速化することに時間を費やさないでください(または、メンテナンスの問題などのために、置き換える必要があります)。パフォーマンスを向上させるためにコードを置き換えることを検討している場合は、いくつかの方法を分離して、代替の実装またはライブラリを使用して、現在のコードを同様のシナリオに対してプロファイリングおよびベンチマークし、仮定に基づく決定を回避します。
最後に、それが内部でどのように機能するかを知ることは、ソースを変更できるようにすることを特に計画している(または理解できる必要がある)場合を除いて、意思決定プロセスの要因になるべきではありません。