HI 各位大大好
目前寫了一段程式,但壓力測試發現有點耗時,想上來問問....
public string Test(string body , string jsonString)
{
// add time log - 1
Mymodel model = Newtonsoft.Json.JsonConvert.DeserializeObject<Mymodel>(jsonString);
// add time log - 2
return Test(body,model.para2,model.para3)
}
private string Test(string para1 , string para2, string para3)
{
// add time log -3
}
我在註解的地方,留了三個log發現1~2花了590ms
也許要處理反序列化需要時間,不過好像有點太久了...
至於2~3也令我不解,呼叫Test這個方法,時間間隔居然有到650ms
是我哪個部分寫的讓他需要這麼久的時間呢?僅是呼叫方法,一進入方法就把時間log出來,還沒經過任何運算...
又再次麻煩各位大大解惑了...
基本上,資料的Serialize以及Deserialize本就算是費時的工作(端看演算法及程式內部運用的資料結構是否能有效加速處理),若資料量夠大,耗時是正常的,這可以解釋1~2的問題
但2~3費時就不太確定原因了,可能因第一次載入函式較耗時等問題導致Latency,若是用Visual Studio Professional甚至Enterprise,建議可使用偵錯工具協助查詢哪個部分耗時並加以改進