2015-11-02 57 views
2

我對serviceStack.Text反序列化有問題。 複雜對象序列化的運行時間隨着對象複雜程度的增加呈指數級增長。特別是,這個對象包含一個簡單對象列表,增加列表中這些項目的數量,序列化的時間會大大增加。我如何讓它更快?ServiceStack反序列化時間

這是我唯一的配置:

JsConfig.IncludeTypeInfo = true; 
JsConfig.IncludePublicFields = true; 
+0

不可能幫助沒有代碼或數據的例子,但更多的數據* *需要更多的時間來處理。您是否嘗試過其他反序列化器,如Json.NET?如果它們表現出類似的性能,或者如果ServiceStack在指數上減速而其他線性減速時,那麼這個問題值得研究。否則,只需對不同的解析器進行基準測試並選擇最快的解析器 –

+0

我嘗試過使用Newtonsoft.Json並且性能要好得多,減速是最小的和線性的 –

+0

然後確實可能有ServiceStack.Text中存在一個錯誤。你用什麼版本? NuGet中的最後一個免費版本*非常*舊。較新的有試用限制。你是否克隆並試用源代碼的最新版本?無論如何,ServiceStack並不比Json.NET快(如果有的話)。這也許是三年前的事情,但現在你必須運行你自己的基準測試(提示) –

回答

1

我會強烈建議不要使用:

JsConfig.IncludeTypeInfo = true; 

這迫使不必要地漲大的有效載荷將包括不必要的類型信息。理想情況下,您的DTO應該定義明確,並且不包含未知的object or Interface properties,它會增加串行器特定的耦合,並且在很多基於標準的串行器中將無法序列化。