Multithreading 使用多个线程读取CSV文件值得吗?
我刚刚注意到,GitHub上流行的仅头文件库默认使用多个线程从磁盘读取CSV文件,我想知道这对典型的硬件有什么好处 假设文件位于单个HDD或SSD上Multithreading 使用多个线程读取CSV文件值得吗?,multithreading,performance,csv,parsing,optimization,Multithreading,Performance,Csv,Parsing,Optimization,我刚刚注意到,GitHub上流行的仅头文件库默认使用多个线程从磁盘读取CSV文件,我想知道这对典型的硬件有什么好处 假设文件位于单个HDD或SSD上 通过顺序读取,磁盘带宽似乎达到了最大化 占用单核的单线程应该能够完成足够的计算和内存写入,以跟上SSD的带宽(现在三星960的带宽为3.5 MB/秒,甚至DDR3在单插槽上的带宽也超过10 GB/秒,而今天的消费类硬件可以轻松地超过25 GB/秒) 我甚至不确定2个线程,加上超线程的效果,是否真的会有很大帮助 是我计算错了,还是多线程CSV读取
- 通过顺序读取,磁盘带宽似乎达到了最大化
- 占用单核的单线程应该能够完成足够的计算和内存写入,以跟上SSD的带宽(现在三星960的带宽为3.5 MB/秒,甚至DDR3在单插槽上的带宽也超过10 GB/秒,而今天的消费类硬件可以轻松地超过25 GB/秒)
是我计算错了,还是多线程CSV读取仅适用于更奇特的场景(RAM模拟磁盘分区/缓存在内存中的文件/多个磁盘等)?可能是针对从网络读取进行了优化?如果不是的话,它的设计就太过复杂了。@rustyx:在它的辩护中,我会说你可以使用预处理器定义来禁用多线程的使用。