我有很多的遺留代碼,其中json
通過使用for循環手動解析。一般需要O(n)
時間。我知道json.net
將在time
和space
但獲取它是如何工作的洞察力方面更好,會幫我做出其是否值得的努力,實際上繼續和投資的一切移動到JSON的時間和人力的決定。淨。序列化和反序列化如何在內部工作?
1
A
回答
2
套用你的問題成爲一個更一般的,讓我們假設你正在尋找的建議上JSON序列化實施選擇各種場景。
我所知道的三個明顯這個問題的答案:
- NewtonSoft JSON.NET
- 提供的功能豐富,性能優異
- ServiceStack.Text
- 簡潔而熾烈的性能
- BCL JsonSerializer
- 避免了第三方庫的依賴,但是較慢顯著
如果你不關心的第三方庫的依賴,去的第一選擇,因爲它會給你性能和功能。如果您不需要大量功能,請評估ServiceStack.Text是否滿足您的需求(如果不確定,請使用JSON.NET)。在任何其他情況下,堅持你擁有的東西。
此外,在知道此特定區域是性能瓶頸之前(或以其他方式保證替換,例如因爲它是維護問題)之前,請不要花時間更換您的JSON代碼以使代碼更快。如果您正在考慮更換代碼以提高性能,請隔離一些方法,以使用備用實現或庫對照您的當前代碼與相似場景進行基準測試,以避免根據假設做出決策。
末,知道它是如何工作的內部不應該出現在你的決策過程中的一個因素,除非您特別計劃可以修改它的來源(或其他需要能夠理解它)。
+0
謝謝你的幫助 –
相關問題
- 1. 部分xml序列化/反序列化
- 2. 反序列化如何工作?
- 3. java序列化和反序列化
- 4. 序列化和反序列化
- 5. Spring Remoting序列化和反序列化
- 6. WCF序列化和反序列化
- 7. OData序列化和反序列化
- 8. jQuery序列化和反序列化
- 9. Hadoop序列化和反序列化
- 10. JQuery序列化和反序列化
- 11. PHP序列化和反序列化
- 12. 性狀和序列化/反序列化
- 13. 序列化和反序列化(C#)
- 14. 序列化和反序列化
- 15. 序列化和反序列化
- 16. C#Xml序列化和反序列化
- 17. 序列化/反序列化和Proguard
- 18. 序列化和反序列化
- 19. DateTime序列化和反序列化
- 20. 序列化和反序列化
- 21. JYAML:序列化/反序列化嵌套/內部類
- 22. 如何在Core Data iOS中序列化和反序列化pdf?
- 23. 如何在netty中序列化和反序列化HttpMessage或HttpContent?
- 24. 如何在C#中執行序列化和反序列化?
- 25. 反序列化內部部分
- 26. GSON反序列化內部部分
- 27. 如何序列化和反序列化郵件程序?
- 28. 反序列化在施工
- 29. 反序列化反序列化接口
- 30. JSON反序列化不反序列化?
你期待的算法是不是通過單一數據迭代更快? –
你希望擺脫這個問題?任何人都可以獲取有關JSON.NET是如何工作的,簡單地通過查看源代碼的見解:http://json.codeplex.com/SourceControl/changeset/view/65597 –
我想他正在尋找容器內工作 –