{"push_id":3125904546,"size":5,"distinct_size":5,"ref":"refs/heads/dev","head":"f56ca2c4f6c802236414b78cb517481a82df00ce","before":"c18c63033e55190d9cb0cff4c3a901b6082de5ea","commits":[{"sha":"163b5c02785c0462a31b9a3f5f05cda54e03de78","author":{"name":"Thiago Macieira","email":"0ed1648d92ca0373297a182b1dba1b974ad10d88@intel.com"},"message":"RCC: Modernize the compression algorithm selection\n\nInstead of using compression level -2 to indicate no compression,\nintroduce CompressionAlgorithm::None and an equivalent XML attribute.\nThis commit includes some extra error checking for RCC.\n\nChange-Id: I343f2beed55440a7ac0bfffd1562d64b024463ba\nReviewed-by: Lars Knoll <lars.knoll@qt.io>\nReviewed-by: hjk <hjk@qt.io>\nReviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>","distinct":true,"url":"https://api.github.com/repos/qt/qtbase/commits/163b5c02785c0462a31b9a3f5f05cda54e03de78"},{"sha":"f25bc30d8d9d13fffd34213dfbf5e7373a18222a","author":{"name":"Thiago Macieira","email":"0ed1648d92ca0373297a182b1dba1b974ad10d88@intel.com"},"message":"QResource: add support for resources compressed with Zstandard\n\nSee next commit for details on why this is a good idea.\n\n[ChangeLog][Important Behavior Changes] The Qt resource system now\nsupports compressing content using the Zstandard (https://zstd.net)\nalgorithm. Compared to zlib, it compresses better for the same CPU time,\nso this algorithm is the default. QResource::isCompressed() returns true\nfor either compression algorithm. Use QResource::compressionAlgorithm()\nto find out which algorithm to decompress. QFile will automatically\ndecompress using the correct algorithm.\n\nChange-Id: I343f2beed55440a7ac0bfffd1562e9a8f94933a7\nReviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>\nReviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>\nReviewed-by: Lars Knoll <lars.knoll@qt.io>","distinct":true,"url":"https://api.github.com/repos/qt/qtbase/commits/f25bc30d8d9d13fffd34213dfbf5e7373a18222a"},{"sha":"2c9ac4fc3fe0b8f39e7f7a93894b56e49fd3d887","author":{"name":"Thiago Macieira","email":"0ed1648d92ca0373297a182b1dba1b974ad10d88@intel.com"},"message":"RCC: Add support for Zstandard compression\n\n[ChangeLog][RCC] RCC now supports compressing content using the\nZstandard (https://zstd.net) algorithm. Compared to zlib, it compresses\nbetter for the same CPU time, so this algorithm is the default. To go\nback to the previous algorithm, pass command-line option\n--compress-algo=zlib. Compression levels range from 1 (fastest, least\ncompression) to 19 (slowest, best compression). Level 0 tells the\nlibrary to choose an implementation-defined default.\n\\\nThe default compression level is \"heuristic\" (level -1): under this\nmode, RCC will attempt a very fast compression (level 1) and check if\nthe file was sufficiently compressed. If it was, then RCC will compress\nagain using an implementation-defined level.\n\nThe following are the 4 biggest files we store as resources in qtbase:\n Orig Size Name\n   2197605 src/corelib/mimetypes/mime/packages/freedesktop.org.xml\n   2462423 tests/auto/corelib/tools/qchar/data/NormalizationTest.txt\n   6878748 tests/auto/other/qcomplextext/data/BidiCharacterTest.txt\n   7959972 tests/auto/other/qcomplextext/data/BidiTest.txt\n\nThe current RCC (zlib, level -1 \"default\" and level 9), produces for\nthose files:\n                        L(-1)    Compr.   L9      Compr.    Decomp.\n Name                   Ratio  CPU time   Ratio  CPU time   CPU time\nBidiCharacterTest.txt   16.9:1  106.1ms   17.2:1  789.3ms     5.1ms\nBidiTest.txt             6.3:1  228.0ms    6.1:1 1646.3ms    10.9ms\nfreedesktop.org.xml      7.0:1   17.5ms    7.1:1   53.6ms     2.6ms\nNormalizationTest.txt    5.8:1   41.2ms    5.9:1  256.4ms     3.4ms\n\nZstandard produces the following for levels 1 (\"check\"), 14 (\"store\")\nand 19 (\"best\"):\n                       L1     Compr.   L14    Compr.    L19    Compr.     Decomp\n Name                  Ratio  time     Ratio  time      Ratio  CPU time   time\nBidiCharacterTest.txt  15.8:1  8.0ms   26.1:1 168.9ms   49.2:1 2504.7ms    3.8ms\nBidiTest.txt            8.2:1 17.0ms    8.7:1 323.9ms   14.9:1 1700.9ms   12.1ms\nfreedesktop.org.xml     6.7:1  4.0ms    8.7:1  63.3ms    9.5:1  642.5ms    1.7ms\nNormalizationTest.txt   5.7:1  5.0ms    7.5:1  54.0ms    8.4:1  447.3ms    3.0ms\n\nThis shows use of zstd at the default RCC level settings always produce\nsmaller outputs compared to the current zlib-based defaults, with\nroughly 50% CPU increase. It also produces better results at less CPU\ntime than the best compression zlib has to offer.\n\nMore importantly, the decompression time reduces in all cases (the\nnumbers listed are for max compression, with slightly better results for\nthe defaults).\n\nFor the sake of comparison, the same files compressed with libxz at\nlevels 3 and 6:\n                        Level 3         Level 6           Decompr.\n Name                   Ratio   CPU     Ratio  CPU        time\nBidiCharacterTest.txt   28.5:1 109.1ms  42.9:1 1390.5ms   16.7ms\nBidiTest.txt            10.7:1 281.0ms  18.4:1 2333.1ms   43.6ms\nfreedesktop.org.xml      9.1:1  62.0ms  10.2:1  499.1ms   12.0ms\nNormalizationTest.txt   10.2:1  75.5ms  13.2:1  417.6ms   14.7ms\n\nLZMA at level 3 consumes roughly the same CPU time as Zstd at level 14\nand produces incrementally smaller results, but the decompression time\nincreases considerably. It's not a good trade-off for the Qt resource\nsystem.\n\nChange-Id: I343f2beed55440a7ac0bfffd1562d754bd71d964\nReviewed-by: Lars Knoll <lars.knoll@qt.io>\nReviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>","distinct":true,"url":"https://api.github.com/repos/qt/qtbase/commits/2c9ac4fc3fe0b8f39e7f7a93894b56e49fd3d887"},{"sha":"57b4b45cbdee00f7e38e5eb57d2bcf42201dc74e","author":{"name":"Thiago Macieira","email":"0ed1648d92ca0373297a182b1dba1b974ad10d88@intel.com"},"message":"RCC: introduce compression algorithm \"best\"\n\nThis compression algorithm is permitted in the XML sources, which\ninstructs RCC to apply the best compression algorithm it has available.\nIf we have Zstandard available, that's its level 19 (levels 20 and up\nare experimental). If not, we apply zlib compression level 9.\n\nAnd apply this technique for the XDG MIME database that is built-in to\nQtCore.\n             Payload size  Compr. time\n Previously        313916    17.9ms\n Zlib -9           310899    53.6ms\n Zstd -14          253364    63.3ms (plus 4.0 ms on L1 heuristic check)\n Zstd -19          230647   642.5ms\n\nChange-Id: I343f2beed55440a7ac0bfffd1562de44dbaf09cd\nReviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>\nReviewed-by: Lars Knoll <lars.knoll@qt.io>","distinct":true,"url":"https://api.github.com/repos/qt/qtbase/commits/57b4b45cbdee00f7e38e5eb57d2bcf42201dc74e"},{"sha":"f56ca2c4f6c802236414b78cb517481a82df00ce","author":{"name":"Thiago Macieira","email":"0ed1648d92ca0373297a182b1dba1b974ad10d88@intel.com"},"message":"QResource: de-inline registerSelf for files\n\nNo other changes, aside from the coding style update to make sure the\ncoding style bot won't complain.\n\nChange-Id: Iae320a2868db402a993dfffd15689a8a6ac202e8\nReviewed-by: Lars Knoll <lars.knoll@qt.io>\nReviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>","distinct":true,"url":"https://api.github.com/repos/qt/qtbase/commits/f56ca2c4f6c802236414b78cb517481a82df00ce"}]}
{"actor":{"display_login":"qtprojectorg"}}