JSON.NETは、式ツリーやILの発射などの最新のテクノロジーを使用して、オブジェクトのシリアル化を効率的に処理して、リフレクションによってもたらされるパフォーマンスボトルネックを回避します。ただし、実行時にILを構築および起動するのは時間です。
キャッシュメカニズム JSON.NET、、またはクラスを使用する場合、シリアル化された情報をキャッシュします。カスタム契約パーサーが指定されていない限り、これらのクラスはデフォルトで契約パーサーとして使用されます。
グローバルな静的インスタンスを維持し、 instanceで共有される静的テーブルを使用します。これらの2つのタイプは、クロススレッドが信頼性があり、共有されることを保証するための安全なスレッドです。 DefaultContractResolver
CamelCasePropertyNamesContractResolver
カスタムコントラクトパーサー
DefaultContractResolver
契約パーサーを実装およびインスタンス化する場合、契約パーサーインスタンス自体がキャッシュされ、再利用された場合にのみ、タイプ情報がキャッシュされ、再利用されます。パフォーマンスを最適化するには、契約パーサーを作成して例を再利用することをお勧めします。 CamelCasePropertyNamesContractResolver
キャッシュはパフォーマンスを向上させますが、メモリの消費も増加させます。メモリが問題の場合は、
のローカルインスタンスを作成することでシリアル化されたオブジェクトを使用し、すぐにすべての引用を削除して、キャッシュ契約の永続的なメモリ使用を最小限に抑えることができます。概要
JSON.NETは
またはを契約パーサーとして使用し、効率的なキャッシュシリアル化された情報を使用してパフォーマンスを改善します。キャッシュはパフォーマンスを向上させますが、カスタム契約パーサーを設計するときは、メモリの使用量を考慮する必要があります。 DefaultContractResolver
以上がjson.netは、パフォーマンスを最適化するためのシリアル化情報をどのようにキャッシュしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。