使用qCompress / qUncompress进行多核

时间:2014-01-17 18:50:36

标签: qt zlib multicore

是否可以将多核用于内部QT功能,例如 qCompress / qUncompress

谢谢。

1 个答案:

答案 0 :(得分:4)

qCompressqUncompress内部使用zlib,其算法不易平行。其他方式,例如pigz,就是将数据切割成块,然后并行压缩。它需要的文件格式与zlib通常期望的格式不同。

如果您可以控制自己的数据,则可以将数据拆分为多个块并并行压缩/解压缩。块的数量可以与解压缩所设想的最大线程数一样大,但是当您进行压缩/解压缩时,您只能并行运行QThread::idealThreadCount()个线程,它们可以处理多个块。块的最小尺寸必须有意义,以免过多地影响压缩比。您可能需要进行实验,但我会收集到128kb以下的块是没有意义的。