私は、ASP.NETアプリケーションでビジネスオブジェクトを直列化および逆シリアル化するために使用するクラスを持っています。 DataContractJsonSerializerの静的インスタンス - 良いデザインか悪いデザインですか?
private static DataContractJsonSerializer m_serializer = new DataContractJsonSerializer(typeof(MyBusinessObject));
...とクラスの2つの静的メソッド:これらの方法では
public static string SerializeJson(MyBusinessObject bo);
public static MyBusinessObject DeserializeJson(string json);
が、私は静的DataContractJsonSerializerオブジェクト(m_serializer)を使用する
クラスは、この静的変数が含まれていますシリアライゼーションとデシリアライズを実行します。この方法では、各呼び出しに対してDataContractJsonSerializerインスタンスをインスタンス化する必要はありません。
このように静的変数を使用するのは正しい設計ですか?
serialize/deserializeコードで多くのヒットを取得した場合、問題に遭遇できますか?
毎秒100回の同時ヒットが発生するウェブサイトから呼び出されます。
限られたテストでは、静的変数を使用するか、呼び出しごとに1つを初期化するかにかかわらず、パフォーマンスはおおよそ同等であるようです。 – frankadelic
この場合、コードの最適化について心配する必要はありません。コードを簡単に作成して管理してください。マスタークヌスが言ったように、「時期尚早の最適化はすべての悪の根源です。 – carlosfigueira