我遇到了性能問題XDocument.Load("large_file.xml")
,加載該文件需要大約25秒。將XML文檔轉換爲二進制文件意味着什麼?
我在this question中讀到,使用二進制格式可以提供高達10倍的性能提升。
二進制格式是什麼樣的?你如何將XML文件轉換爲它?
我遇到了性能問題XDocument.Load("large_file.xml")
,加載該文件需要大約25秒。將XML文檔轉換爲二進制文件意味着什麼?
我在this question中讀到,使用二進制格式可以提供高達10倍的性能提升。
二進制格式是什麼樣的?你如何將XML文件轉換爲它?
讓我們先從隱含問題:
問:什麼是二進制格式?答:這是一種數據以非文本形式表示的格式。例如,Java int
可能會被表示爲4個字節,而不是一串十進制數字和符號。
問:它看起來像什麼?
答:如果您使用文本編輯器/查看器查看它,它看起來像垃圾。
問:如何將XML文件轉換爲二進制格式?
答:手工。由於二進制格式本質上是一種非文本格式(任何格式),因此不存在將其轉換的神奇方法。
問:如何以及爲什麼二進制格式更快?
答:二進制格式不會自動加載得比XML(或JSON)快。這個想法是,你(程序員)設計你的應用程序的一個特定的二進制格式,即將更快地加載到。使用需要較少的CPU的努力變成在 - 數據編碼
XML格式有很多信息。所以它很大而且很慢。您可以創建自己的格式。
例如:
<Data>Value</Data>
可以在一個二進制文件進行更改,只是value
一個具體的地址。
參考鏈接問題中的註釋:建議的二進制格式是您必須自己創建的。 – 2012-04-26 07:43:33
是否只是明文組織,但我認爲合適? – Louis 2012-04-26 07:49:04
二進制文件不是純文本。評論的要點是XML> JSON>二進制。二進制是12345號不存儲在包含字符「12345」但在兩個字節「0x39 0x30」(假設您使用一個小小的16位二進制存儲字)的文本行中的格式。決定如何以二進制格式存儲值完全取決於您,如果您的數據很複雜,這可能是不平凡的。 – 2012-04-26 08:07:09