私はjson文字列を返しますwebserviceを持っています。 Alltogehter私はBLOBデータを持つ432個のJSONオブジェクトを持っています。 各Web要求では、432のオブジェクト30個、432のiamまで取得します。 各逆シリアル化で、逆シリアル化する時間が増加します。 30オブジェクト必要な秒数は9秒、消滅秒数は15秒です。 463オブジェクトは1,3 GBです。30個のブロブオブジェクトを持つ大きなjsonデータを逆シリアル化する
私のコードを調整するにはどうしたらいいですか?30オブジェクトには9秒以上は必要ありません。
文字列は次のようになります。
{
"d:" [
{
"id": "1",
"groesse": 2515221,
"byteasbase64string": "the base64 string"
},
{
"id": "2",
"groesse": 887748,
"byteasbase64string": "the base64 string"
}
]
}
HERESに私のC#コード:
List<db.dwaprotokolldatei> getProtokolldatei = new List<db.dwaprotokolldatei>();
using (postStreamGPD = resGPD.GetResponseStream())
{
using (srGPD = new StreamReader(postStreamGPD))
{
string responseFromServerGPD = srGPD.ReadToEnd(); // Long running time
getProtokolldatei = JsonConvert.DeserializeObject<db.rootobject>(responseFromServerGPD).d;// Long running time
responseFromServerGPD = "";
}
}
reqGPD = null;
postDataAsBytesGPD = null;
postStreamGPD.Dispose();
postStreamGPD = null;
resGPD.Dispose();
resGPD = null;
srGPD.Dispose();
srGPD = null;
GC.Collect();
WebRequestクラス:
reqGPD = (HttpWebRequest)HttpWebRequest.Create("*****");
reqGPD.Method = "POST";
reqGPD.ContentType = "application/json";
mobileJSON = ConvertTOJSONMobile(existingMobile);
postDataAsBytesGPD = Encoding.UTF8.GetBytes(mobileJSON);
postStreamGPD = reqGPD.GetRequestStream();
postStreamGPD.Write(postDataAsBytesGPD, 0, postDataAsBytesGPD.Length);
postStreamGPD.Flush();
postStreamGPD.Dispose();
resGPD = reqGPD.GetResponse();
- それは、すでに(あなたの場合、 'postStreamGPD'と' srGPD'で)包まれたインスタンス上の 'のDispose()'メソッドを呼び出すように '構築using'で何かを包みます。手動で行う必要はありません。 –
これで問題は解決しません。 – Pascal
いいえ、私はそれを答えとして与えていない、ただのコメントです。 =) –