diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-05-25 12:28:27 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2019-05-28 12:28:01 +0200 |
commit | aa44e10942937452930255be156c1b29247ee969 (patch) | |
tree | db5258343c82c434d1026870285ae9f21727f915 /include/sal | |
parent | 7cd3f267cfbf3655f6a7a395b80560ecd22e15f7 (diff) |
parallel deflate compression (one stream, multiple threads)
ZipPackageStream::saveChild() already had one threaded compression,
but that still uses only one thread for one stream. Many documents
contain many streams (where this is useful), but large documents
often contain one huge content.xml, which then would be compressed
using just one thread.
But it is in fact possible to do deflate in parallel on the same data,
at the cost of somewhat increased CPU usage (spread over threads).
This is handled separately from the background thread path, as
integrating these two approaches would probably be needlessly complex
(since they both internally use ThreadPool, the tasks should often
intermix and parallelize anyway).
On my 4-core (8 HT threads) machine this reduces the compression time
of tdf#113042 from 3s to 1s.
Change-Id: Ifbc889a27966f97eb1ce2ce01c5fb0b151a1bdf8
Reviewed-on: https://gerrit.libreoffice.org/73032
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'include/sal')
-rw-r--r-- | include/sal/log-areas.dox | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox index 1f007b0c2944..8d9a2c68ea92 100644 --- a/include/sal/log-areas.dox +++ b/include/sal/log-areas.dox @@ -334,6 +334,7 @@ certain functionality. @li @c package @li @c package.xstor +@li @c package.threadeddeflate @section sdext |