Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在磁盘上有一个压缩文件,该文件以块为单位进行分区。我从磁盘读取一个块,将其解压缩到内存并读取数据。
是否可以创建一个生产者/消费者,一个从磁盘恢复压缩块并放入队列的线程和另一个解压缩和读取数据的线程?
性能会更好吗?
谢谢!
我怀疑解压缩数据的线程会花费大部分时间等待从磁盘读取压缩块的线程。
如果受 CPU 限制的解压所花费的时间比受 IO 限制的从磁盘读取块的时间长,我会感到惊讶。
是的,可以这样设置。您是否会看到性能改进在很大程度上取决于机器、您对解压缩数据所做的确切性质等。如果不是太麻烦,并且您的数据集很大,我建议这样做并且测量看看它是否更快。如果没有别的,它类似于您需要做的工作来利用某种 map-reduce 框架。