用于写入SSD磁盘的C#ThreadPool

时间:2011-03-18 02:51:57

标签: c# windows-xp threadpool ssd

我有一个线程池将数据写入SSD磁盘。 (Windows XP,c#) 我想选择一个池大小来优化性能。从理论上讲, 应该通过更多线程提高性能? SSD如何处理并发写入? 还有并发读取,就此而言?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您需要执行随机io操作,您可能希望确保驱动器在AHCI中运行,因为AHCI比IDE更高的并发性随机性能通常更快 (见http://benchmarkreviews.com/index.php?option=com_content&task=view&id=505&Itemid=38&limit=1&limitstart=3)。

此评论还显示并发随机读取和写入(4K-64Trd结果)比仅使用单个线程(4K结果)更快。

答案 1 :(得分:0)

解决此问题的最佳方法是实际分析不同的池大小。您选择的实际设置取决于您正在执行的I / O的性质,当然还取决于所述I / O的并发性。

  

理论上,应该表现   用更多线程改进?

与传统的基于主轴的驱动器不同,SSD具有很好的随机读/写性能,因此可以(大大地)从多个并发线程对其执行I / O中获益。

  

SSD如何处理并发写入?    还有并发读取,就此而言?

由于没有移动部件,只需要对各种(存储器)位置进行数据访问,因此除非读取/写入驱动器的IO / s超出,否则几乎不需要随机读/写的排队。