【发布时间】:2014-01-17 18:50:36
【问题描述】:
是否可以将多核用于内部 QT 功能,例如 qCompress/qUncompress?
谢谢。
【问题讨论】:
-
一切皆有可能。 =)。撇开玩笑不谈,我不认为我完全理解你的问题。
-
我只是想在压缩数据时使用多个内核。
是否可以将多核用于内部 QT 功能,例如 qCompress/qUncompress?
谢谢。
【问题讨论】:
qCompress和qUncompress内部使用zlib,其算法不易并行化。其他方法,例如pigz,是将数据切割成块,然后并行压缩。它需要不同于 zlib 通常期望的文件格式。
如果您可以控制自己的数据,则可以将数据拆分为多个块并并行压缩/解压缩它们。块的数量可以与为解压缩设想的最大线程数一样大,但是当您进行压缩/解压缩时,您只能并行运行QThread::idealThreadCount() 数量的线程,它们每个可能处理多个块。块的最小大小必须有意义,以免过多影响压缩率。您可能需要进行试验,但我认为 128kb 以下的块没有什么意义。
【讨论】: