我只是偶然到this SO問題,想知道是否會有任何性能的提高,如果:多線程文件比較性能
- 文件中的塊進行比較並不比硬盤扇區大小(1/2KB ,2KB,或4KB)
- 和比較做多線程(或者甚至與.NET 4個並行的東西)
我想有是2個線程:一個是從文件的開頭讀取和另一個從e讀取直到他們在中間相遇。
我知道在這種情況下,磁盤IO將是最慢的部分,但如果讀取永遠不必跨越扇區邊界(這在我的扭曲想象中以某種方式消除了任何可能的碎片開銷),因此它可能潛在地減少磁頭移動導致更好的性能(可能?)。
當然其他因素也可以發揮作用,比如單個vs多個處理器/內核或者SSD與非SSD,但是除此之外;是磁盤IO速度+潛在共享處理器時間不可逾越的問題?或者,也許我的計算機理論的概念是完全脫離基地...
線程購買更多的CPU週期,而不是更多的磁盤。讓線程從磁盤的不同部分讀取會使其慢*很多*。整蠱也要測試,當你第二次運行你的程序時它會看起來很快。 –