2009-04-14 69 views
2

我在樹結構中有一組數據。目前我將這些數據保存到二進制文件中。缺點是這些數據的排序和過濾非常困難。不僅如此,當數據量很大時,從硬盤讀入內存的速度非常慢。將樹結構數據轉換爲XML--性能問題

因此,我正在考慮將這些樹狀數據保存爲XML文件。我想這樣做的原因是因爲

  1. XML已經得到了建庫的篩選和數據處理
  2. XML操作是深受社會支持,而現在我要支持我自己的數據結構操作

考慮到.Net對XML的支持,我想知道從XML查詢數據,而不是從二進制文件查詢數據,它是否更快(在加載速度方面)?我做這個開關對我有什麼好處嗎?我相當確信,就程序設計而言,XML能夠擊敗我自己的樹型數據結構,但加載速度又如何呢?

回答

1

作爲一條經驗法則:您不會發現XML是管理數據的最小或最快的方式。

您的描述沒有給出足夠詳細的說明,但也許關係數據庫會是一個更好的方法。將樹結構映射到關係模型通常並不困難。 (走另一條路是另一回事......)

+0

非常簡潔。 +1 – Cerebrus 2009-04-14 16:39:28

0

數據大小可能會大於您當前的樹大小,因爲XML是文本,因此所有數據都必須被序列化爲文本表示。所以加載可能也可能不會更慢,這也取決於您當前的加載實現。至於其他方面,如果做得對,查詢和修改數據是非常簡單和相當高效的,但是由於文本性質,它通常不能超過一個良好完成的二進制實現。如果您需要轉換樹數據(用於顯示等),那麼XML非常棒 - 使用XSL Transformations,您可以使用很少的編程創建幾乎任何XML,HTML或文本表示形式的數據(因此也可以測試和調試)的努力。

0

從性能的角度來看,XML幾乎肯定會失去對二進制結構的競爭。然而,從發展和技術的角度來看,你認爲XML是勝手平平的。

我完全贊同@ Dan的說法。隨着數據量的增加,XML數據結構的性能呈指數級下降。它的用途非常普遍,因爲大多數應用程序不處理通常存儲在數據庫中或序列化爲二進制數據的大量數據。

相關問題