簡體   English   中英

如何分配連續的磁盤空間?

[英]How do I allocate contiguous disk space?

我正在開發一個可以處理大量文件並進行谷歌搜索的系統。我讀到了關於提高硬盤信息檢索速度的系統。 但是由於我使用Java,我找不到任何庫來處理這個問題。 我對C ++有一個非常模糊的知識,並發現了一些關於IOCTL的硬盤信息檢索。 顯然,無法獲取特定信息,例如我可以從硬盤獲得多少連續的空閑塊或者它具有的最大連續空閑塊。 我目前正在使用Windows 7和XP。 我知道JNI的使用,但我對C ++有很大的問題。 但即使搜索C ++解決方案,我找不到任何東西。 也許我在Google上做了一些錯誤的查詢。 有人可以給我一個鏈接,研究建議或任何東西? 我願意學習C ++(雖然我幾乎沒有空閑時間)。

非常感謝你!

PS-Edit:我知道它實際上沒什么區別。 但我真的需要了解這一點。 但感謝大家提供建議。

您是否發現了性能問題? 如果沒有,那么不要做任何事情。

您確定磁盤上文件的物理分布是導致此性能問題的原因嗎? 如果沒有,則測量應用程序中花費的時間,並嘗試改進算法,必要時引入緩存。

如果你已經完成了這一切,並且確定磁盤上文件的物理分布導致了性能問題,你是否考慮購買更快的磁盤,或者使用多個磁盤? 硬件通常比開發時間便宜得多。

我非常懷疑磁盤上文件的物理分布對應用程序的性能有很大影響。 我會先搜索其他地方。

AFAIK沒有內置方式,也沒有100%純java解決方案。 問題是檢索那種信息取決於平台,因為Java應該是獨立於平台的,所以你只能使用一個公共子集。

Kernel上尉此解釋說,這不一定會提高磁盤性能,除此之外,如果沒有大量的工作,這是不可能的。

NTFS已經嘗試連續分配您的文件,如Windows 7工程師的博客文章中所述。 如果沒有足夠大的連續可用空間塊,您的文件將只會被分段。

如果您認為文件不被分割很重要,那么我認為最好的選擇是安排對磁盤進行每晚碎片整理。 這更像是系統管理問題。

最后, 碎片與SSD磁盤無關

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM