我只是偶然到this SO问题,想知道是否会有任何性能的提高,如果:多线程文件比较性能
- 文件中的块进行比较并不比硬盘扇区大小(1/2KB ,2KB,或4KB)
- 和比较做多线程(或者甚至与.NET 4个并行的东西)
我想有是2个线程:一个是从文件的开头读取和另一个从e读取直到他们在中间相遇。
我知道在这种情况下,磁盘IO将是最慢的部分,但如果读取永远不必跨越扇区边界(这在我的扭曲想象中以某种方式消除了任何可能的碎片开销),因此它可能潜在地减少磁头移动导致更好的性能(可能?)。
当然其他因素也可以发挥作用,比如单个vs多个处理器/内核或者SSD与非SSD,但是除此之外;是磁盘IO速度+潜在共享处理器时间不可逾越的问题?或者,也许我的计算机理论的概念是完全脱离基地...
线程购买更多的CPU周期,而不是更多的磁盘。让线程从磁盘的不同部分读取会使其慢*很多*。整蛊也要测试,当你第二次运行你的程序时它会看起来很快。 –