eb8d19fc1ebc684043e310d211585d364dca63b5
380 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4dfcad9f4e |
assertion failure on darwin_x86_64, have to investigage
PiperOrigin-RevId: 303428229 |
||
|
|
e19178748f |
assertion failure on darwin_x86_64, have to investigage
PiperOrigin-RevId: 303346402 |
||
|
|
0faf56378e |
This cl does two things
1) It shaves of a few cycles from the data dependency chain. By using "shrd" instead of a load. 2) The important loop is finding small copies (4-12) which are either "copy 1", or "copy 2" depending if the offset fits <2048. It turns out that this is a branch that is mispredicted often. Due to the long dependency chain the CPU is running with IPC~1 anyway so we can freely add instructions to instead emit copies branchfree. This reduces the branch misspredicts from 15% to 11% (for BM_ZFlat/6 txt1) and from 5.6% to 4% (for BM_ZFlat/10 or pb). PiperOrigin-RevId: 303328967 |
||
|
|
0c7ed08a25 |
The result on protobuf benchmark is around 19%. Results vary by their propensity for compression. As the frequency of finding matches influences the amount of branch misspredicts and the amount of hashing.
Two ideas 1) The code uses "heuristic match skipping" has a quadratic interpolation. However for the first 32 bytes it's just every byte. Special case 16 bytes. This removes a lot of code. 2) Load 64 bit integers and shift instead of reload. The hashing loop has a very long chain data = Load32(ip) -> hash = Hash(data) -> offset = table[hash] -> copy_data = Load32(base_ip + offset) followed by a compare between data and copy_data. This chain is around 20 cycles. It's unreasonable for the branch predictor to be able to predict when it's a match (that is completely driven by the content of the data). So when it's a miss this chain is on the critical path. By loading 64 bits and shifting we can effectively remove the first load. PiperOrigin-RevId: 302893821 |
||
|
|
3c77e01459 |
1) Make the output pointer a local variable such it doesn't need a load add store on it's loop carried dependency chain.
2) Reduce the input pointer loop carried dependency chain from 7 cycles to 4 cycles by using pre-loading. This is a very subtle point. 3) Just brutally copy 64 bytes which removes a difficult to predict branch from the inner most loop. There is enough bandwidth to do so in the intrinsic cycles of the loop. 4) Implement limit pointers that include the slop region. This removes unnecessary instructions from the hot path. 5) It seems the removal of the difficult to predict branch has removed the code sensitivity to alignment, so remove the asm nop's. PiperOrigin-RevId: 294692928 |
||
|
|
9eabb7baba |
Cut a load from the critical dependency chain of the input pointer by speculating the uncommon case of COPY_4 is not happening.
PiperOrigin-RevId: 293803653 |
||
|
|
cddd9c0875 |
Improve comments in IncrementalCopy, add an assert.
PiperOrigin-RevId: 292506754 |
||
|
|
537f4ad624 |
Tag open source release 1.1.8.
PiperOrigin-RevId: 289675084 |
||
|
|
b5477a8457 |
Optimize IncrementalCopy: There are between 1 and 4 copy iterations. Allow FDO to work with full knowledge of the probabilities for each branch.
On skylake, this improves protobuf and html decompression speed by 15% and 9% respectively, and the rest by ~2%. On haswell, this improves protobuf and html decompression speed by 23% and 16% respectively, and the rest by ~3%. PiperOrigin-RevId: 289090401 |
||
|
|
f5acee902c |
Move CI to Visual Studio 2019.
PiperOrigin-RevId: 279785698 |
||
|
|
26410cc4f8 |
Merge pull request #85 from bitomaxsp:patch-1
PiperOrigin-RevId: 279633518 |
||
|
|
0eec45ed16 |
Align CMake configuration with related projects.
PiperOrigin-RevId: 279237837 |
||
|
|
6617df53fa |
Remove redundant PROJECT_SOURCE_DIR usage from CMake config.
Inspired by https://github.com/google/crc32c/pull/32 PiperOrigin-RevId: 278718367 |
||
|
|
f48c38f91a |
Fix one forgotten instance of StringPrintf -> StrFormat.
PiperOrigin-RevId: 278315159 |
||
|
|
c9212708b2 |
Fix build errors.
PiperOrigin-RevId: 278310119 |
||
|
|
eb2eb73e6b |
Test CMake installation on Travis.
PiperOrigin-RevId: 278300416 |
||
|
|
8f32e3fbc0 |
Internal changes
PiperOrigin-RevId: 277555451 |
||
|
|
38945971d6 | Allow build with different standard if lib used as a subproject | ||
|
|
e9e11b84e6 |
Fix Travis CI build.
* Fix bash conditionals: [ a == b ] should be [ a = b ]. * Upgrade to LLVM 9 on Travis. * Upgrade fuzzer build arguments for LLVM 9. PiperOrigin-RevId: 271898655 |
||
|
|
9dabbca006 |
Remove snappy::string alias to std::string.
PiperOrigin-RevId: 271678325 |
||
|
|
62363d9a79 |
Fully qualify std::string.
This is in preparation for removing the snappy::string alias of std::string. PiperOrigin-RevId: 271383199 |
||
|
|
d837d5cfe1 |
Merge pull request #80 from tmm1:patch-2
PiperOrigin-RevId: 264514195 |
||
|
|
44d84addf2 |
Fix benchmarks.
PiperOrigin-RevId: 264501168 |
||
|
|
c6bf1170d8 |
Fix benchmarks.
PiperOrigin-RevId: 264420835 |
||
|
|
6219c7787b |
Fix unused variable warnings in fuzzers.
PiperOrigin-RevId: 264377331 |
||
|
|
5a57d32566 |
Rename zippy_*_fuzzer.cc -> snappy_*_fuzzer.cc.
PiperOrigin-RevId: 264321311 |
||
|
|
fd79e6f9b2 |
Merge pull request #78 from bshastry:libfuzzer-harness
PiperOrigin-RevId: 264241380 |
||
|
|
4c7f2d5dfb |
Add BM_ZFlatAll, BM_ZFlatIncreasingTableSize benchmarks to see how good zippy performs when it is processing different data one after the other.
PiperOrigin-RevId: 257518137 |
||
|
|
a58d4b03c5 | Update travis config for fuzzer builds | ||
|
|
d926a6bcb5 | Updated to match .gitignore from google/leveldb | ||
|
|
6662dfb5d4 | Create .gitignore | ||
|
|
d71375bf8a | Add libFuzzer harnesses, a cmake option to build them | ||
|
|
156cd8939c |
Removed reference to deprecated autotools.
PiperOrigin-RevId: 253128048 |
||
|
|
fe702ad2a3 |
Use GCC 9 on Travis CI
PiperOrigin-RevId: 249995900 |
||
|
|
a3e012d762 |
The snappy landing page at http://google.github.io/snappy/ is
served by [GitHub Pages](https://pages.github.com/) and lives in the gh-pages branch. This changes moves the page contents to a more easily accessed Markdown file. PiperOrigin-RevId: 248561542 |
||
|
|
4312f49315 |
Merge pull request #75 from Maikuolan:patch-1
PiperOrigin-RevId: 248558516 |
||
|
|
407712f4c9 |
Merge pull request #76 from abyss7:patch-1
PiperOrigin-RevId: 248211389 |
||
|
|
8c188a6c78 |
Minor typo fix in README.
PiperOrigin-RevId: 248170160 |
||
|
|
c76b053449 |
Sync TODO and comment processing with external repo.
Copybara transforms code slightly different than MOE. One example is the TODO username stripping where Copybara produces different results than MOE did. This change moves the Copybara versions of comments to the public repository. Note: These changes didn't originate in cl/247950252. PiperOrigin-RevId: 247950252 |
||
|
|
54b6379e9f |
Changed CMake version from 3.4 to that in CMakeLists.txt in README.
PiperOrigin-RevId: 247484946 |
||
|
|
0af4349bf0 |
Update Travis CI configuration.
The Travis configuration: 1) Installs recent versions of clang and GCC. 2) Sets up the environment so that CMake picks up the installed compilers. Previously, the pre-installed clang compiler was used instead. 3) Requests a modern macOS image that has all the headers needed by GCC. The CL also removes now-unnecessary old workarounds from the Travis configuration. PiperOrigin-RevId: 245832795 |
||
|
|
877cc86f0e |
Fixed formatted (bash/c++) sections of README.md.
PiperOrigin-RevId: 244695986 |
||
|
|
02cf187555 |
Remove MSan exemption for _bzhi_u32, since LLVM now handles it correctly.
This cleans up a TODO from cl/225463783 and cl/225655713. PiperOrigin-RevId: 241933185 |
||
|
|
be831dc98c | Fix compilation | ||
|
|
d58cd618be | Remove MSBuild section from AppVeyor configuration. | ||
|
|
c197d686a9 |
Optimize snappy compression by about 2.2%.
'jpg_200' is notably optimized by ~8%. name old time/op new time/op delta BM_UFlat/0 [html ] 41.8µs ± 0% 41.9µs ± 0% +0.33% (p=0.016 n=5+5) BM_UFlat/1 [urls ] 590µs ± 0% 590µs ± 0% ~ (p=1.000 n=5+5) BM_UFlat/2 [jpg ] 7.14µs ± 1% 7.12µs ± 1% ~ (p=0.310 n=5+5) BM_UFlat/3 [jpg_200 ] 129ns ± 0% 129ns ± 0% ~ (p=0.167 n=5+5) BM_UFlat/4 [pdf ] 8.21µs ± 0% 8.20µs ± 0% ~ (p=0.310 n=5+5) BM_UFlat/5 [html4 ] 220µs ± 1% 220µs ± 0% ~ (p=0.421 n=5+5) BM_UFlat/6 [txt1 ] 193µs ± 0% 193µs ± 0% ~ (p=0.841 n=5+5) BM_UFlat/7 [txt2 ] 171µs ± 0% 171µs ± 0% ~ (p=0.056 n=5+5) BM_UFlat/8 [txt3 ] 512µs ± 0% 511µs ± 0% ~ (p=0.310 n=5+5) BM_UFlat/9 [txt4 ] 716µs ± 0% 716µs ± 0% ~ (p=1.000 n=5+5) BM_UFlat/10 [pb ] 38.8µs ± 1% 38.8µs ± 0% ~ (p=1.000 n=5+5) BM_UFlat/11 [gaviota ] 190µs ± 0% 190µs ± 0% ~ (p=0.841 n=5+5) BM_UFlat/12 [cp ] 14.4µs ± 1% 14.4µs ± 1% ~ (p=0.151 n=5+5) BM_UFlat/13 [c ] 7.33µs ± 0% 7.32µs ± 0% ~ (p=0.690 n=5+5) BM_UFlat/14 [lsp ] 2.30µs ± 0% 2.31µs ± 1% ~ (p=0.548 n=5+5) BM_UFlat/15 [xls ] 984µs ± 0% 984µs ± 0% ~ (p=1.000 n=5+5) BM_UFlat/16 [xls_200 ] 213ns ± 0% 213ns ± 0% ~ (p=0.310 n=5+5) BM_UFlat/17 [bin ] 277µs ± 0% 278µs ± 0% ~ (p=0.690 n=5+5) BM_UFlat/18 [bin_200 ] 101ns ± 0% 102ns ± 0% ~ (p=0.190 n=5+4) BM_UFlat/19 [sum ] 29.6µs ± 0% 29.6µs ± 0% ~ (p=0.310 n=5+5) BM_UFlat/20 [man ] 2.98µs ± 1% 2.98µs ± 0% ~ (p=1.000 n=5+5) BM_UValidate/0 [html ] 33.5µs ± 0% 33.6µs ± 0% ~ (p=0.310 n=5+5) BM_UValidate/1 [urls ] 443µs ± 0% 443µs ± 0% ~ (p=0.841 n=5+5) BM_UValidate/2 [jpg ] 146ns ± 0% 146ns ± 0% ~ (p=0.222 n=5+5) BM_UValidate/3 [jpg_200 ] 95.6ns ± 0% 95.5ns ± 0% ~ (p=0.421 n=5+5) BM_UValidate/4 [pdf ] 2.92µs ± 0% 2.92µs ± 0% ~ (p=0.841 n=5+5) BM_UIOVec/0 [html ] 122µs ± 0% 122µs ± 0% ~ (p=0.548 n=5+5) BM_UIOVec/1 [urls ] 1.08ms ± 0% 1.08ms ± 0% ~ (p=0.151 n=5+5) BM_UIOVec/2 [jpg ] 7.48µs ± 5% 7.75µs ±12% ~ (p=0.690 n=5+5) BM_UIOVec/3 [jpg_200 ] 331ns ± 1% 327ns ± 1% ~ (p=0.056 n=5+5) BM_UIOVec/4 [pdf ] 12.0µs ± 0% 12.0µs ± 0% ~ (p=1.000 n=5+5) BM_UFlatSink/0 [html ] 41.7µs ± 0% 41.8µs ± 0% ~ (p=0.421 n=5+5) BM_UFlatSink/1 [urls ] 591µs ± 0% 590µs ± 0% ~ (p=0.151 n=5+5) BM_UFlatSink/2 [jpg ] 7.18µs ± 2% 7.31µs ± 3% ~ (p=0.190 n=4+5) BM_UFlatSink/3 [jpg_200 ] 134ns ± 2% 134ns ± 2% ~ (p=1.000 n=5+5) BM_UFlatSink/4 [pdf ] 8.22µs ± 0% 8.23µs ± 0% ~ (p=0.730 n=4+5) BM_UFlatSink/5 [html4 ] 219µs ± 0% 219µs ± 0% ~ (p=0.548 n=5+5) BM_UFlatSink/6 [txt1 ] 193µs ± 0% 193µs ± 0% ~ (p=0.095 n=5+5) BM_UFlatSink/7 [txt2 ] 171µs ± 0% 171µs ± 0% ~ (p=0.841 n=5+5) BM_UFlatSink/8 [txt3 ] 512µs ± 0% 512µs ± 0% ~ (p=0.548 n=5+5) BM_UFlatSink/9 [txt4 ] 718µs ± 0% 718µs ± 0% ~ (p=0.548 n=5+5) BM_UFlatSink/10 [pb ] 38.7µs ± 0% 38.6µs ± 0% ~ (p=0.222 n=5+5) BM_UFlatSink/11 [gaviota ] 191µs ± 0% 190µs ± 0% ~ (p=0.690 n=5+5) BM_UFlatSink/12 [cp ] 14.3µs ± 0% 14.4µs ± 0% ~ (p=0.222 n=5+5) BM_UFlatSink/13 [c ] 7.33µs ± 0% 7.34µs ± 1% ~ (p=0.690 n=5+5) BM_UFlatSink/14 [lsp ] 2.29µs ± 1% 2.30µs ± 1% ~ (p=0.095 n=5+5) BM_UFlatSink/15 [xls ] 981µs ± 0% 980µs ± 0% ~ (p=0.310 n=5+5) BM_UFlatSink/16 [xls_200 ] 216ns ± 1% 216ns ± 1% ~ (p=1.000 n=5+5) BM_UFlatSink/17 [bin ] 277µs ± 0% 277µs ± 0% ~ (p=1.000 n=5+5) BM_UFlatSink/18 [bin_200 ] 104ns ± 0% 104ns ± 1% ~ (p=0.905 n=5+4) BM_UFlatSink/19 [sum ] 29.5µs ± 0% 29.5µs ± 0% ~ (p=0.222 n=5+5) BM_UFlatSink/20 [man ] 3.01µs ± 1% 3.01µs ± 0% ~ (p=0.730 n=5+4) BM_ZFlat/0 [html (22.31 %) ] 126µs ± 0% 124µs ± 0% -1.66% (p=0.008 n=5+5) BM_ZFlat/1 [urls (47.78 %) ] 1.68ms ± 0% 1.63ms ± 0% -2.73% (p=0.008 n=5+5) BM_ZFlat/2 [jpg (99.95 %) ] 11.6µs ± 8% 11.4µs ± 6% ~ (p=0.310 n=5+5) BM_ZFlat/3 [jpg_200 (73.00 %)] 369ns ± 1% 340ns ± 1% -7.93% (p=0.008 n=5+5) BM_ZFlat/4 [pdf (83.30 %) ] 14.9µs ± 4% 14.4µs ± 1% -3.56% (p=0.008 n=5+5) BM_ZFlat/5 [html4 (22.52 %) ] 551µs ± 0% 545µs ± 0% -1.21% (p=0.008 n=5+5) BM_ZFlat/6 [txt1 (57.88 %) ] 540µs ± 0% 534µs ± 0% -1.15% (p=0.008 n=5+5) BM_ZFlat/7 [txt2 (61.91 %) ] 480µs ± 0% 475µs ± 0% -1.13% (p=0.008 n=5+5) BM_ZFlat/8 [txt3 (54.99 %) ] 1.44ms ± 0% 1.43ms ± 0% -1.14% (p=0.008 n=5+5) BM_ZFlat/9 [txt4 (66.26 %) ] 1.97ms ± 0% 1.95ms ± 0% -1.00% (p=0.008 n=5+5) BM_ZFlat/10 [pb (19.68 %) ] 110µs ± 0% 107µs ± 0% -2.77% (p=0.008 n=5+5) BM_ZFlat/11 [gaviota (37.72 %)] 413µs ± 0% 411µs ± 0% -0.50% (p=0.008 n=5+5) BM_ZFlat/12 [cp (48.12 %) ] 46.6µs ± 1% 44.8µs ± 1% -3.89% (p=0.008 n=5+5) BM_ZFlat/13 [c (42.47 %) ] 17.8µs ± 0% 17.5µs ± 0% -1.87% (p=0.008 n=5+5) BM_ZFlat/14 [lsp (48.37 %) ] 5.62µs ± 1% 5.35µs ± 1% -4.81% (p=0.008 n=5+5) BM_ZFlat/15 [xls (41.23 %) ] 1.63ms ± 0% 1.63ms ± 0% ~ (p=0.310 n=5+5) BM_ZFlat/16 [xls_200 (78.00 %)] 393ns ± 1% 384ns ± 2% -2.45% (p=0.008 n=5+5) BM_ZFlat/17 [bin (18.11 %) ] 510µs ± 0% 503µs ± 0% -1.50% (p=0.016 n=4+5) BM_ZFlat/18 [bin_200 (7.50 %) ] 83.2ns ± 3% 84.5ns ± 4% ~ (p=0.206 n=5+5) BM_ZFlat/19 [sum (48.96 %) ] 80.0µs ± 0% 78.3µs ± 0% -2.20% (p=0.008 n=5+5) BM_ZFlat/20 [man (59.21 %) ] 7.79µs ± 1% 7.45µs ± 1% -4.38% (p=0.008 n=5+5) name old allocs/op new allocs/op delta BM_UFlat/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/5 [html4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/6 [txt1 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/7 [txt2 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/8 [txt3 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/9 [txt4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/10 [pb ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/11 [gaviota ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/12 [cp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/13 [c ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/14 [lsp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/15 [xls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/16 [xls_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/17 [bin ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/18 [bin_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/19 [sum ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/20 [man ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/5 [html4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/6 [txt1 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/7 [txt2 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/8 [txt3 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/9 [txt4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/10 [pb ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/11 [gaviota ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/12 [cp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/13 [c ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/14 [lsp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/15 [xls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/16 [xls_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/17 [bin ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/18 [bin_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/19 [sum ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/20 [man ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_ZFlat/0 [html (22.31 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/1 [urls (47.78 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/2 [jpg (99.95 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/3 [jpg_200 (73.00 %)] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/4 [pdf (83.30 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/5 [html4 (22.52 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/6 [txt1 (57.88 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/7 [txt2 (61.91 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/8 [txt3 (54.99 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/9 [txt4 (66.26 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/10 [pb (19.68 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/11 [gaviota (37.72 %)] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/12 [cp (48.12 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/13 [c (42.47 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/14 [lsp (48.37 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/15 [xls (41.23 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/16 [xls_200 (78.00 %)] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/17 [bin (18.11 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/18 [bin_200 (7.50 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/19 [sum (48.96 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/20 [man (59.21 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) name old peak-mem(Bytes)/op new peak-mem(Bytes)/op delta BM_UFlat/0 [html ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/1 [urls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/2 [jpg ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/3 [jpg_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/4 [pdf ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/5 [html4 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/6 [txt1 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/7 [txt2 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/8 [txt3 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/9 [txt4 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/10 [pb ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/11 [gaviota ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/12 [cp ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/13 [c ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/14 [lsp ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/15 [xls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/16 [xls_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/17 [bin ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/18 [bin_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/19 [sum ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/20 [man ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/0 [html ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/1 [urls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/2 [jpg ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/3 [jpg_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/4 [pdf ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/0 [html ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/1 [urls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/2 [jpg ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/3 [jpg_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/4 [pdf ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlatSink/0 [html ] 102k ± 0% 102k ± 0% ~ (all samples are equal) BM_UFlatSink/1 [urls ] 702k ± 0% 702k ± 0% ~ (all samples are equal) BM_UFlatSink/2 [jpg ] 123k ± 0% 123k ± 0% ~ (all samples are equal) BM_UFlatSink/3 [jpg_200 ] 201 ± 0% 201 ± 0% ~ (all samples are equal) BM_UFlatSink/4 [pdf ] 102k ± 0% 102k ± 0% ~ (all samples are equal) BM_UFlatSink/5 [html4 ] 410k ± 0% 410k ± 0% ~ (all samples are equal) BM_UFlatSink/6 [txt1 ] 152k ± 0% 152k ± 0% ~ (all samples are equal) BM_UFlatSink/7 [txt2 ] 125k ± 0% 125k ± 0% ~ (all samples are equal) BM_UFlatSink/8 [txt3 ] 427k ± 0% 427k ± 0% ~ (all samples are equal) BM_UFlatSink/9 [txt4 ] 482k ± 0% 482k ± 0% ~ (all samples are equal) BM_UFlatSink/10 [pb ] 119k ± 0% 119k ± 0% ~ (all samples are equal) BM_UFlatSink/11 [gaviota ] 184k ± 0% 184k ± 0% ~ (all samples are equal) BM_UFlatSink/12 [cp ] 24.6k ± 0% 24.6k ± 0% ~ (all samples are equal) BM_UFlatSink/13 [c ] 11.2k ± 0% 11.2k ± 0% ~ (all samples are equal) BM_UFlatSink/14 [lsp ] 3.72k ± 0% 3.72k ± 0% ~ (all samples are equal) BM_UFlatSink/15 [xls ] 1.03M ± 0% 1.03M ± 0% ~ (all samples are equal) BM_UFlatSink/16 [xls_200 ] 201 ± 0% 201 ± 0% ~ (all samples are equal) BM_UFlatSink/17 [bin ] 513k ± 0% 513k ± 0% ~ (all samples are equal) BM_UFlatSink/18 [bin_200 ] 201 ± 0% 201 ± 0% ~ (all samples are equal) BM_UFlatSink/19 [sum ] 38.2k ± 0% 38.2k ± 0% ~ (all samples are equal) BM_UFlatSink/20 [man ] 4.23k ± 0% 4.23k ± 0% ~ (all samples are equal) BM_ZFlat/0 [html (22.31 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/1 [urls (47.78 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/2 [jpg (99.95 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/3 [jpg_200 (73.00 %)] 30.7k ± 0% 30.7k ± 0% ~ (all samples are equal) BM_ZFlat/4 [pdf (83.30 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/5 [html4 (22.52 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/6 [txt1 (57.88 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/7 [txt2 (61.91 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/8 [txt3 (54.99 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/9 [txt4 (66.26 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/10 [pb (19.68 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/11 [gaviota (37.72 %)] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/12 [cp (48.12 %) ] 86.1k ± 0% 86.1k ± 0% ~ (all samples are equal) BM_ZFlat/13 [c (42.47 %) ] 57.0k ± 0% 57.0k ± 0% ~ (all samples are equal) BM_ZFlat/14 [lsp (48.37 %) ] 30.6k ± 0% 30.6k ± 0% ~ (all samples are equal) BM_ZFlat/15 [xls (41.23 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/16 [xls_200 (78.00 %)] 30.7k ± 0% 30.7k ± 0% ~ (all samples are equal) BM_ZFlat/17 [bin (18.11 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/18 [bin_200 (7.50 %) ] 30.7k ± 0% 30.7k ± 0% ~ (all samples are equal) BM_ZFlat/19 [sum (48.96 %) ] 116k ± 0% 116k ± 0% ~ (all samples are equal) BM_ZFlat/20 [man (59.21 %) ] 30.6k ± 0% 30.6k ± 0% ~ (all samples are equal) name old speed new speed delta BM_UFlat/0 [html ] 2.46GB/s ± 0% 2.45GB/s ± 1% ~ (p=0.841 n=5+5) BM_UFlat/1 [urls ] 1.19GB/s ± 1% 1.20GB/s ± 1% ~ (p=0.310 n=5+5) BM_UFlat/2 [jpg ] 17.3GB/s ± 1% 17.4GB/s ± 1% ~ (p=0.310 n=5+5) BM_UFlat/3 [jpg_200 ] 1.56GB/s ± 0% 1.56GB/s ± 0% ~ (p=0.190 n=4+5) BM_UFlat/4 [pdf ] 12.5GB/s ± 1% 12.5GB/s ± 0% ~ (p=0.548 n=5+5) BM_UFlat/5 [html4 ] 1.87GB/s ± 0% 1.87GB/s ± 1% ~ (p=1.000 n=5+5) BM_UFlat/6 [txt1 ] 791MB/s ± 1% 791MB/s ± 0% ~ (p=1.000 n=5+5) BM_UFlat/7 [txt2 ] 737MB/s ± 0% 738MB/s ± 0% ~ (p=0.841 n=5+5) BM_UFlat/8 [txt3 ] 839MB/s ± 0% 839MB/s ± 0% ~ (p=1.000 n=5+5) BM_UFlat/9 [txt4 ] 675MB/s ± 1% 674MB/s ± 0% ~ (p=0.730 n=5+4) BM_UFlat/10 [pb ] 3.08GB/s ± 1% 3.06GB/s ± 0% ~ (p=0.095 n=5+5) BM_UFlat/11 [gaviota ] 974MB/s ± 0% 976MB/s ± 0% ~ (p=0.238 n=5+5) BM_UFlat/12 [cp ] 1.70GB/s ± 0% 1.72GB/s ± 0% +1.07% (p=0.016 n=4+5) BM_UFlat/13 [c ] 1.53GB/s ± 0% 1.53GB/s ± 1% ~ (p=1.000 n=5+5) BM_UFlat/14 [lsp ] 1.62GB/s ± 1% 1.62GB/s ± 1% ~ (p=1.000 n=5+5) BM_UFlat/15 [xls ] 1.05GB/s ± 1% 1.05GB/s ± 0% ~ (p=0.556 n=5+4) BM_UFlat/16 [xls_200 ] 943MB/s ± 0% 940MB/s ± 0% ~ (p=0.151 n=5+5) BM_UFlat/17 [bin ] 1.86GB/s ± 1% 1.86GB/s ± 0% ~ (p=1.000 n=5+5) BM_UFlat/18 [bin_200 ] 1.99GB/s ± 0% 1.97GB/s ± 1% ~ (p=0.190 n=5+4) BM_UFlat/19 [sum ] 1.30GB/s ± 0% 1.30GB/s ± 1% ~ (p=0.151 n=5+5) BM_UFlat/20 [man ] 1.42GB/s ± 1% 1.42GB/s ± 0% ~ (p=1.000 n=5+5) BM_UValidate/0 [html ] 3.06GB/s ± 0% 3.06GB/s ± 1% ~ (p=1.000 n=5+5) BM_UValidate/1 [urls ] 1.59GB/s ± 0% 1.59GB/s ± 0% ~ (p=0.095 n=5+5) BM_UValidate/2 [jpg ] 845GB/s ± 0% 845GB/s ± 0% ~ (p=1.000 n=5+5) BM_UValidate/3 [jpg_200 ] 2.10GB/s ± 0% 2.10GB/s ± 0% ~ (p=0.310 n=5+5) BM_UValidate/4 [pdf ] 35.1GB/s ± 0% 35.1GB/s ± 1% ~ (p=0.690 n=5+5) BM_UIOVec/0 [html ] 843MB/s ± 0% 847MB/s ± 1% ~ (p=0.222 n=5+5) BM_UIOVec/1 [urls ] 652MB/s ± 1% 652MB/s ± 1% ~ (p=0.310 n=5+5) BM_UIOVec/2 [jpg ] 16.5GB/s ± 5% 16.0GB/s ±10% ~ (p=0.841 n=5+5) BM_UIOVec/3 [jpg_200 ] 606MB/s ± 1% 614MB/s ± 1% ~ (p=0.056 n=5+5) BM_UIOVec/4 [pdf ] 8.57GB/s ± 0% 8.57GB/s ± 0% ~ (p=0.343 n=4+4) BM_UFlatSink/0 [html ] 2.47GB/s ± 0% 2.45GB/s ± 0% -0.58% (p=0.016 n=5+5) BM_UFlatSink/1 [urls ] 1.19GB/s ± 0% 1.20GB/s ± 0% ~ (p=0.548 n=5+5) BM_UFlatSink/2 [jpg ] 16.4GB/s ±19% 16.9GB/s ± 4% ~ (p=0.690 n=5+5) BM_UFlatSink/3 [jpg_200 ] 1.50GB/s ± 2% 1.50GB/s ± 2% ~ (p=1.000 n=5+5) BM_UFlatSink/4 [pdf ] 12.5GB/s ± 0% 12.5GB/s ± 0% ~ (p=0.730 n=4+5) BM_UFlatSink/5 [html4 ] 1.87GB/s ± 1% 1.88GB/s ± 0% ~ (p=0.421 n=5+5) BM_UFlatSink/6 [txt1 ] 793MB/s ± 0% 792MB/s ± 1% ~ (p=0.690 n=5+5) BM_UFlatSink/7 [txt2 ] 736MB/s ± 0% 736MB/s ± 1% ~ (p=0.841 n=5+5) BM_UFlatSink/8 [txt3 ] 839MB/s ± 0% 839MB/s ± 0% ~ (p=0.548 n=5+5) BM_UFlatSink/9 [txt4 ] 675MB/s ± 0% 675MB/s ± 0% ~ (p=0.222 n=5+5) BM_UFlatSink/10 [pb ] 3.07GB/s ± 0% 3.09GB/s ± 0% +0.54% (p=0.016 n=5+5) BM_UFlatSink/11 [gaviota ] 973MB/s ± 0% 971MB/s ± 0% ~ (p=0.151 n=5+5) BM_UFlatSink/12 [cp ] 1.72GB/s ± 1% 1.71GB/s ± 1% ~ (p=0.421 n=5+5) BM_UFlatSink/13 [c ] 1.53GB/s ± 1% 1.52GB/s ± 0% ~ (p=0.841 n=5+5) BM_UFlatSink/14 [lsp ] 1.63GB/s ± 0% 1.62GB/s ± 1% ~ (p=0.222 n=5+5) BM_UFlatSink/15 [xls ] 1.06GB/s ± 0% 1.05GB/s ± 0% ~ (p=0.111 n=4+5) BM_UFlatSink/16 [xls_200 ] 932MB/s ± 1% 928MB/s ± 1% ~ (p=0.548 n=5+5) BM_UFlatSink/17 [bin ] 1.86GB/s ± 0% 1.86GB/s ± 1% ~ (p=1.000 n=5+5) BM_UFlatSink/18 [bin_200 ] 1.93GB/s ± 1% 1.94GB/s ± 1% ~ (p=0.730 n=5+4) BM_UFlatSink/19 [sum ] 1.30GB/s ± 0% 1.30GB/s ± 1% ~ (p=0.690 n=5+5) BM_UFlatSink/20 [man ] 1.41GB/s ± 1% 1.41GB/s ± 2% ~ (p=0.690 n=5+5) BM_ZFlat/0 [html (22.31 %) ] 815MB/s ± 1% 829MB/s ± 0% +1.78% (p=0.008 n=5+5) BM_ZFlat/1 [urls (47.78 %) ] 420MB/s ± 1% 432MB/s ± 1% +2.87% (p=0.008 n=5+5) BM_ZFlat/2 [jpg (99.95 %) ] 10.7GB/s ± 8% 10.9GB/s ± 6% ~ (p=0.421 n=5+5) BM_ZFlat/3 [jpg_200 (73.00 %)] 544MB/s ± 2% 590MB/s ± 1% +8.41% (p=0.008 n=5+5) BM_ZFlat/4 [pdf (83.30 %) ] 6.92GB/s ± 3% 7.16GB/s ± 1% +3.51% (p=0.008 n=5+5) BM_ZFlat/5 [html4 (22.52 %) ] 745MB/s ± 0% 755MB/s ± 0% +1.34% (p=0.008 n=5+5) BM_ZFlat/6 [txt1 (57.88 %) ] 282MB/s ± 0% 285MB/s ± 1% +1.04% (p=0.008 n=5+5) BM_ZFlat/7 [txt2 (61.91 %) ] 262MB/s ± 0% 265MB/s ± 0% +1.22% (p=0.008 n=5+5) BM_ZFlat/8 [txt3 (54.99 %) ] 297MB/s ± 0% 300MB/s ± 0% +1.09% (p=0.008 n=5+5) BM_ZFlat/9 [txt4 (66.26 %) ] 246MB/s ± 1% 248MB/s ± 0% +0.95% (p=0.008 n=5+5) BM_ZFlat/10 [pb (19.68 %) ] 1.08GB/s ± 1% 1.11GB/s ± 1% +2.57% (p=0.008 n=5+5) BM_ZFlat/11 [gaviota (37.72 %)] 449MB/s ± 1% 451MB/s ± 0% ~ (p=0.056 n=5+5) BM_ZFlat/12 [cp (48.12 %) ] 530MB/s ± 1% 552MB/s ± 0% +4.17% (p=0.008 n=5+5) BM_ZFlat/13 [c (42.47 %) ] 628MB/s ± 1% 640MB/s ± 0% +1.85% (p=0.008 n=5+5) BM_ZFlat/14 [lsp (48.37 %) ] 665MB/s ± 0% 697MB/s ± 1% +4.71% (p=0.008 n=5+5) BM_ZFlat/15 [xls (41.23 %) ] 635MB/s ± 0% 634MB/s ± 0% ~ (p=0.310 n=5+5) BM_ZFlat/16 [xls_200 (78.00 %)] 511MB/s ± 1% 522MB/s ± 2% +2.23% (p=0.008 n=5+5) BM_ZFlat/17 [bin (18.11 %) ] 1.01GB/s ± 1% 1.02GB/s ± 0% +1.67% (p=0.008 n=5+5) BM_ZFlat/18 [bin_200 (7.50 %) ] 2.41GB/s ± 3% 2.37GB/s ± 4% ~ (p=0.222 n=5+5) BM_ZFlat/19 [sum (48.96 %) ] 480MB/s ± 0% 490MB/s ± 1% +2.24% (p=0.008 n=5+5) BM_ZFlat/20 [man (59.21 %) ] 545MB/s ± 0% 569MB/s ± 1% +4.38% (p=0.008 n=5+5) |
||
|
|
3f194acb57 |
Convert DCHECK to assert.
A previous CL introduced a use of DCHECK. The open source build does not support DCHECK, and this project uses assert() instead of DCHECK. |
||
|
|
97a20b480f |
Reduce the LeftShiftOverflows() table size.
A previous CL introduced LeftShiftOverflows(), which takes a uint32 input. However, the value it operates on is guaranteed to only have 8 bits set. This CL takes advantage of this restriction to reduce the size of the static table used to compute LeftShiftOverflows(). The same methodology as the previous CL suggests a 0.6% improvement. The improvement is likely bigger on mobile CPUs that have much smaller caches. Benchmark results: name old time/op new time/op delta BM_UFlat/0 [html ] 42.5µs ± 1% 42.1µs ± 0% -0.87% (p=0.000 n=20+20) BM_UFlat/1 [urls ] 575µs ± 0% 574µs ± 0% -0.16% (p=0.000 n=20+19) BM_UFlat/2 [jpg ] 7.13µs ± 1% 7.20µs ± 5% ~ (p=0.422 n=16+19) BM_UFlat/3 [jpg_200 ] 129ns ± 0% 130ns ± 0% +0.82% (p=0.000 n=20+17) BM_UFlat/4 [pdf ] 8.22µs ± 1% 8.21µs ± 0% ~ (p=0.586 n=17+17) BM_UFlat/5 [html4 ] 222µs ± 0% 222µs ± 0% -0.11% (p=0.047 n=19+20) BM_UFlat/6 [txt1 ] 192µs ± 0% 191µs ± 0% -0.69% (p=0.000 n=20+20) BM_UFlat/7 [txt2 ] 169µs ± 0% 169µs ± 0% -0.28% (p=0.000 n=20+20) BM_UFlat/8 [txt3 ] 510µs ± 0% 507µs ± 0% -0.50% (p=0.000 n=20+20) BM_UFlat/9 [txt4 ] 707µs ± 0% 703µs ± 0% -0.53% (p=0.000 n=20+20) BM_UFlat/10 [pb ] 39.1µs ± 0% 38.5µs ± 0% -1.56% (p=0.000 n=20+20) BM_UFlat/11 [gaviota ] 189µs ± 0% 189µs ± 0% -0.42% (p=0.000 n=20+20) BM_UFlat/12 [cp ] 14.2µs ± 0% 14.2µs ± 1% -0.30% (p=0.001 n=18+19) BM_UFlat/13 [c ] 7.29µs ± 0% 7.34µs ± 1% +0.59% (p=0.000 n=19+20) BM_UFlat/14 [lsp ] 2.28µs ± 0% 2.29µs ± 1% +0.39% (p=0.000 n=19+18) BM_UFlat/15 [xls ] 905µs ± 0% 904µs ± 0% -0.12% (p=0.030 n=20+20) BM_UFlat/16 [xls_200 ] 213ns ± 2% 215ns ± 4% +0.92% (p=0.011 n=20+20) BM_UFlat/17 [bin ] 274µs ± 0% 275µs ± 0% +0.55% (p=0.000 n=20+20) BM_UFlat/18 [bin_200 ] 101ns ± 1% 101ns ± 1% ~ (p=0.913 n=18+18) BM_UFlat/19 [sum ] 27.9µs ± 1% 27.5µs ± 1% -1.38% (p=0.000 n=20+20) BM_UFlat/20 [man ] 2.97µs ± 1% 2.97µs ± 1% ~ (p=0.835 n=20+19) BM_UValidate/0 [html ] 33.5µs ± 0% 34.2µs ± 0% +2.32% (p=0.000 n=20+20) BM_UValidate/1 [urls ] 441µs ± 0% 442µs ± 0% +0.15% (p=0.010 n=20+20) BM_UValidate/2 [jpg ] 144ns ± 0% 146ns ± 0% +1.32% (p=0.000 n=20+20) BM_UValidate/3 [jpg_200 ] 95.3ns ± 0% 96.0ns ± 0% +0.68% (p=0.000 n=20+20) BM_UValidate/4 [pdf ] 2.86µs ± 0% 2.88µs ± 1% +0.67% (p=0.000 n=19+19) BM_UIOVec/0 [html ] 122µs ± 0% 122µs ± 0% -0.25% (p=0.000 n=20+20) BM_UIOVec/1 [urls ] 1.08ms ± 0% 1.08ms ± 0% ~ (p=0.068 n=20+20) BM_UIOVec/2 [jpg ] 7.63µs ± 7% 7.76µs ±11% ~ (p=0.396 n=19+20) BM_UIOVec/3 [jpg_200 ] 325ns ± 0% 326ns ± 0% +0.27% (p=0.000 n=20+18) BM_UIOVec/4 [pdf ] 12.1µs ± 2% 12.1µs ± 3% ~ (p=0.967 n=19+20) BM_UFlatSink/0 [html ] 42.4µs ± 0% 42.1µs ± 0% -0.89% (p=0.000 n=20+20) BM_UFlatSink/1 [urls ] 575µs ± 0% 575µs ± 0% ~ (p=0.883 n=20+20) BM_UFlatSink/2 [jpg ] 7.58µs ±16% 7.52µs ±15% ~ (p=0.945 n=19+20) BM_UFlatSink/3 [jpg_200 ] 133ns ± 4% 133ns ± 4% ~ (p=0.627 n=19+20) BM_UFlatSink/4 [pdf ] 8.29µs ± 4% 8.39µs ± 4% +1.14% (p=0.013 n=19+18) BM_UFlatSink/5 [html4 ] 223µs ± 0% 222µs ± 0% -0.18% (p=0.001 n=20+20) BM_UFlatSink/6 [txt1 ] 192µs ± 0% 191µs ± 0% -0.71% (p=0.000 n=20+20) BM_UFlatSink/7 [txt2 ] 169µs ± 0% 169µs ± 0% -0.26% (p=0.000 n=20+20) BM_UFlatSink/8 [txt3 ] 510µs ± 0% 508µs ± 0% -0.50% (p=0.000 n=20+20) BM_UFlatSink/9 [txt4 ] 707µs ± 0% 704µs ± 0% -0.44% (p=0.000 n=20+20) BM_UFlatSink/10 [pb ] 39.1µs ± 0% 38.5µs ± 1% -1.62% (p=0.000 n=19+20) BM_UFlatSink/11 [gaviota ] 189µs ± 0% 189µs ± 0% -0.39% (p=0.000 n=20+20) BM_UFlatSink/12 [cp ] 14.2µs ± 0% 14.2µs ± 1% ~ (p=0.435 n=19+19) BM_UFlatSink/13 [c ] 7.29µs ± 0% 7.33µs ± 1% +0.57% (p=0.000 n=19+20) BM_UFlatSink/14 [lsp ] 2.29µs ± 0% 2.29µs ± 1% ~ (p=0.791 n=18+18) BM_UFlatSink/15 [xls ] 903µs ± 0% 902µs ± 0% -0.11% (p=0.044 n=20+19) BM_UFlatSink/16 [xls_200 ] 215ns ± 1% 215ns ± 1% ~ (p=0.885 n=19+19) BM_UFlatSink/17 [bin ] 274µs ± 0% 275µs ± 0% +0.51% (p=0.000 n=20+20) BM_UFlatSink/18 [bin_200 ] 103ns ± 2% 103ns ± 0% -0.41% (p=0.016 n=20+15) BM_UFlatSink/19 [sum ] 27.9µs ± 1% 27.5µs ± 1% -1.34% (p=0.000 n=20+19) BM_UFlatSink/20 [man ] 2.98µs ± 1% 2.97µs ± 1% ~ (p=0.358 n=18+19) BM_ZFlat/0 [html (22.31 %) ] 126µs ± 0% 126µs ± 0% +0.14% (p=0.011 n=20+20) BM_ZFlat/1 [urls (47.78 %) ] 1.67ms ± 0% 1.67ms ± 0% +0.11% (p=0.043 n=20+20) BM_ZFlat/2 [jpg (99.95 %) ] 11.5µs ± 6% 11.7µs ± 7% ~ (p=0.142 n=20+20) BM_ZFlat/3 [jpg_200 (73.00 %)] 349ns ± 3% 351ns ± 3% ~ (p=0.573 n=18+20) BM_ZFlat/4 [pdf (83.30 %) ] 14.6µs ± 2% 14.7µs ± 4% ~ (p=0.879 n=19+20) BM_ZFlat/5 [html4 (22.52 %) ] 553µs ± 0% 552µs ± 0% -0.23% (p=0.000 n=20+20) BM_ZFlat/6 [txt1 (57.88 %) ] 540µs ± 0% 540µs ± 0% ~ (p=0.221 n=20+20) BM_ZFlat/7 [txt2 (61.91 %) ] 479µs ± 0% 481µs ± 1% +0.47% (p=0.000 n=20+20) BM_ZFlat/8 [txt3 (54.99 %) ] 1.44ms ± 0% 1.44ms ± 0% +0.13% (p=0.040 n=20+20) BM_ZFlat/9 [txt4 (66.26 %) ] 1.97ms ± 0% 1.97ms ± 0% +0.16% (p=0.009 n=20+20) BM_ZFlat/10 [pb (19.68 %) ] 110µs ± 1% 109µs ± 1% -0.79% (p=0.000 n=20+20) BM_ZFlat/11 [gaviota (37.72 %)] 410µs ± 0% 410µs ± 0% ~ (p=0.149 n=20+19) BM_ZFlat/12 [cp (48.12 %) ] 45.4µs ± 1% 44.9µs ± 1% -1.23% (p=0.000 n=20+20) BM_ZFlat/13 [c (42.47 %) ] 17.5µs ± 0% 17.5µs ± 1% ~ (p=0.883 n=20+20) BM_ZFlat/14 [lsp (48.37 %) ] 5.51µs ± 1% 5.46µs ± 1% -0.95% (p=0.000 n=20+18) BM_ZFlat/15 [xls (41.23 %) ] 1.61ms ± 0% 1.62ms ± 0% ~ (p=0.183 n=20+20) BM_ZFlat/16 [xls_200 (78.00 %)] 389ns ± 2% 391ns ± 3% ~ (p=0.740 n=18+20) BM_ZFlat/17 [bin (18.11 %) ] 508µs ± 0% 508µs ± 0% ~ (p=0.779 n=20+20) BM_ZFlat/18 [bin_200 (7.50 %) ] 87.4ns ± 5% 88.1ns ± 8% ~ (p=0.367 n=16+19) BM_ZFlat/19 [sum (48.96 %) ] 79.1µs ± 0% 80.2µs ± 0% +1.39% (p=0.000 n=20+20) BM_ZFlat/20 [man (59.21 %) ] 7.55µs ± 1% 7.57µs ± 1% +0.31% (p=0.025 n=19+19) name old speed new speed delta BM_UFlat/0 [html ] 2.42GB/s ± 0% 2.44GB/s ± 0% +0.77% (p=0.000 n=19+19) BM_UFlat/1 [urls ] 1.22GB/s ± 0% 1.23GB/s ± 0% +0.06% (p=0.000 n=20+19) BM_UFlat/2 [jpg ] 17.3GB/s ± 2% 17.2GB/s ± 4% ~ (p=0.433 n=17+19) BM_UFlat/3 [jpg_200 ] 1.56GB/s ± 0% 1.54GB/s ± 0% -0.82% (p=0.000 n=20+20) BM_UFlat/4 [pdf ] 12.5GB/s ± 1% 12.5GB/s ± 1% ~ (p=0.322 n=17+17) BM_UFlat/5 [html4 ] 1.85GB/s ± 0% 1.85GB/s ± 0% +0.16% (p=0.000 n=20+20) BM_UFlat/6 [txt1 ] 794MB/s ± 0% 800MB/s ± 0% +0.68% (p=0.000 n=18+20) BM_UFlat/7 [txt2 ] 741MB/s ± 0% 743MB/s ± 0% +0.30% (p=0.000 n=19+19) BM_UFlat/8 [txt3 ] 840MB/s ± 0% 844MB/s ± 0% +0.53% (p=0.000 n=18+20) BM_UFlat/9 [txt4 ] 684MB/s ± 0% 688MB/s ± 0% +0.57% (p=0.000 n=20+17) BM_UFlat/10 [pb ] 3.04GB/s ± 0% 3.09GB/s ± 0% +1.60% (p=0.000 n=19+20) BM_UFlat/11 [gaviota ] 977MB/s ± 0% 981MB/s ± 0% +0.45% (p=0.000 n=19+19) BM_UFlat/12 [cp ] 1.74GB/s ± 0% 1.74GB/s ± 0% +0.29% (p=0.000 n=20+19) BM_UFlat/13 [c ] 1.53GB/s ± 0% 1.52GB/s ± 1% -0.56% (p=0.000 n=19+20) BM_UFlat/14 [lsp ] 1.64GB/s ± 0% 1.63GB/s ± 1% -0.38% (p=0.000 n=19+20) BM_UFlat/15 [xls ] 1.14GB/s ± 0% 1.14GB/s ± 0% +0.11% (p=0.000 n=19+20) BM_UFlat/16 [xls_200 ] 941MB/s ± 1% 931MB/s ± 4% -1.02% (p=0.001 n=19+20) BM_UFlat/17 [bin ] 1.88GB/s ± 0% 1.87GB/s ± 0% -0.51% (p=0.000 n=20+20) BM_UFlat/18 [bin_200 ] 1.98GB/s ± 0% 1.98GB/s ± 1% ~ (p=0.767 n=18+18) BM_UFlat/19 [sum ] 1.37GB/s ± 0% 1.39GB/s ± 0% +1.46% (p=0.000 n=20+20) BM_UFlat/20 [man ] 1.43GB/s ± 0% 1.43GB/s ± 0% ~ (p=0.501 n=18+18) BM_UValidate/0 [html ] 3.07GB/s ± 0% 3.00GB/s ± 0% -2.25% (p=0.000 n=20+20) BM_UValidate/1 [urls ] 1.60GB/s ± 0% 1.59GB/s ± 0% -0.11% (p=0.000 n=18+19) BM_UValidate/2 [jpg ] 859GB/s ± 0% 848GB/s ± 0% -1.29% (p=0.000 n=20+19) BM_UValidate/3 [jpg_200 ] 2.10GB/s ± 0% 2.09GB/s ± 0% -0.68% (p=0.000 n=19+20) BM_UValidate/4 [pdf ] 35.9GB/s ± 0% 35.6GB/s ± 1% -0.71% (p=0.000 n=20+20) BM_UIOVec/0 [html ] 843MB/s ± 0% 844MB/s ± 0% +0.21% (p=0.000 n=20+20) BM_UIOVec/1 [urls ] 651MB/s ± 0% 650MB/s ± 0% -0.10% (p=0.000 n=20+20) BM_UIOVec/2 [jpg ] 16.2GB/s ± 6% 16.0GB/s ±10% ~ (p=0.380 n=19+20) BM_UIOVec/3 [jpg_200 ] 617MB/s ± 0% 615MB/s ± 0% -0.24% (p=0.000 n=20+17) BM_UIOVec/4 [pdf ] 8.52GB/s ± 3% 8.50GB/s ± 3% ~ (p=0.771 n=19+20) BM_UFlatSink/0 [html ] 2.42GB/s ± 0% 2.44GB/s ± 0% +0.93% (p=0.000 n=20+20) BM_UFlatSink/1 [urls ] 1.23GB/s ± 0% 1.23GB/s ± 0% +0.04% (p=0.006 n=20+20) BM_UFlatSink/2 [jpg ] 16.4GB/s ±14% 16.5GB/s ±13% ~ (p=0.879 n=19+20) BM_UFlatSink/3 [jpg_200 ] 1.51GB/s ± 4% 1.51GB/s ± 4% ~ (p=0.874 n=18+20) BM_UFlatSink/4 [pdf ] 12.4GB/s ± 4% 12.3GB/s ± 4% -1.11% (p=0.016 n=19+18) BM_UFlatSink/5 [html4 ] 1.85GB/s ± 0% 1.85GB/s ± 0% +0.20% (p=0.000 n=20+20) BM_UFlatSink/6 [txt1 ] 794MB/s ± 0% 799MB/s ± 0% +0.72% (p=0.000 n=19+20) BM_UFlatSink/7 [txt2 ] 741MB/s ± 0% 743MB/s ± 0% +0.30% (p=0.000 n=18+20) BM_UFlatSink/8 [txt3 ] 839MB/s ± 0% 843MB/s ± 0% +0.52% (p=0.000 n=20+18) BM_UFlatSink/9 [txt4 ] 684MB/s ± 0% 687MB/s ± 0% +0.46% (p=0.000 n=20+20) BM_UFlatSink/10 [pb ] 3.04GB/s ± 0% 3.09GB/s ± 0% +1.71% (p=0.000 n=20+19) BM_UFlatSink/11 [gaviota ] 976MB/s ± 0% 980MB/s ± 0% +0.45% (p=0.000 n=20+20) BM_UFlatSink/12 [cp ] 1.74GB/s ± 1% 1.74GB/s ± 1% ~ (p=0.904 n=20+20) BM_UFlatSink/13 [c ] 1.53GB/s ± 0% 1.53GB/s ± 1% -0.50% (p=0.000 n=19+20) BM_UFlatSink/14 [lsp ] 1.63GB/s ± 1% 1.63GB/s ± 1% ~ (p=0.358 n=19+18) BM_UFlatSink/15 [xls ] 1.14GB/s ± 0% 1.15GB/s ± 0% +0.12% (p=0.000 n=20+20) BM_UFlatSink/16 [xls_200 ] 931MB/s ± 1% 931MB/s ± 1% ~ (p=0.686 n=19+19) BM_UFlatSink/17 [bin ] 1.88GB/s ± 0% 1.87GB/s ± 0% -0.53% (p=0.000 n=20+20) BM_UFlatSink/18 [bin_200 ] 1.94GB/s ± 2% 1.95GB/s ± 1% +0.42% (p=0.014 n=20+15) BM_UFlatSink/19 [sum ] 1.37GB/s ± 0% 1.39GB/s ± 0% +1.38% (p=0.000 n=19+18) BM_UFlatSink/20 [man ] 1.42GB/s ± 1% 1.43GB/s ± 0% ~ (p=0.284 n=18+19) BM_ZFlat/0 [html (22.31 %) ] 815MB/s ± 0% 814MB/s ± 0% -0.15% (p=0.000 n=20+20) BM_ZFlat/1 [urls (47.78 %) ] 423MB/s ± 0% 422MB/s ± 0% -0.14% (p=0.000 n=20+20) BM_ZFlat/2 [jpg (99.95 %) ] 10.8GB/s ± 5% 10.6GB/s ± 7% ~ (p=0.142 n=20+20) BM_ZFlat/3 [jpg_200 (73.00 %)] 574MB/s ± 2% 572MB/s ± 2% ~ (p=0.613 n=18+20) BM_ZFlat/4 [pdf (83.30 %) ] 7.01GB/s ± 2% 7.01GB/s ± 4% ~ (p=0.593 n=18+20) BM_ZFlat/5 [html4 (22.52 %) ] 743MB/s ± 0% 745MB/s ± 0% +0.25% (p=0.000 n=20+19) BM_ZFlat/6 [txt1 (57.88 %) ] 283MB/s ± 0% 282MB/s ± 0% ~ (p=0.261 n=18+19) BM_ZFlat/7 [txt2 (61.91 %) ] 262MB/s ± 0% 261MB/s ± 0% -0.35% (p=0.000 n=20+19) BM_ZFlat/8 [txt3 (54.99 %) ] 298MB/s ± 0% 297MB/s ± 0% -0.11% (p=0.000 n=20+19) BM_ZFlat/9 [txt4 (66.26 %) ] 245MB/s ± 0% 245MB/s ± 0% -0.13% (p=0.000 n=19+20) BM_ZFlat/10 [pb (19.68 %) ] 1.08GB/s ± 0% 1.09GB/s ± 0% +0.82% (p=0.000 n=18+19) BM_ZFlat/11 [gaviota (37.72 %)] 451MB/s ± 0% 451MB/s ± 0% -0.05% (p=0.004 n=19+20) BM_ZFlat/12 [cp (48.12 %) ] 543MB/s ± 1% 550MB/s ± 1% +1.24% (p=0.000 n=20+20) BM_ZFlat/13 [c (42.47 %) ] 638MB/s ± 0% 637MB/s ± 0% ~ (p=0.708 n=19+19) BM_ZFlat/14 [lsp (48.37 %) ] 678MB/s ± 2% 684MB/s ± 1% +0.89% (p=0.000 n=20+19) BM_ZFlat/15 [xls (41.23 %) ] 640MB/s ± 0% 640MB/s ± 0% -0.10% (p=0.000 n=19+19) BM_ZFlat/16 [xls_200 (78.00 %)] 515MB/s ± 2% 514MB/s ± 3% ~ (p=0.916 n=18+19) BM_ZFlat/17 [bin (18.11 %) ] 1.01GB/s ± 0% 1.01GB/s ± 0% +0.03% (p=0.033 n=20+20) BM_ZFlat/18 [bin_200 (7.50 %) ] 2.30GB/s ± 6% 2.28GB/s ± 9% ~ (p=0.502 n=16+19) BM_ZFlat/19 [sum (48.96 %) ] 485MB/s ± 0% 478MB/s ± 0% -1.39% (p=0.000 n=19+20) BM_ZFlat/20 [man (59.21 %) ] 562MB/s ± 1% 560MB/s ± 1% -0.37% (p=0.016 n=18+19) |
||
|
|
4f0adca400 |
Wrap BMI2 instruction usage in support checks.
A previous version of this was submitted and rolled back due to breakage -- an attempt to accommodate Visual Studio resulted in compiler errors on GCC/Clang with -mavx2 but without -mbmi2. This version makes the BMI2 support check more strict, to avoid the errors. A previous CL introduced _bzhi_u32 (part of Intel's BMI2 instruction set, released in Haswell) gated by a check for the __BMI2__ preprocessor macro. This works for Clang and GCC, but does not work on Visual Studio, and may not work on other compilers. This CL plumbs the BMI2 support checks through the CMake configuration used by the open source build. It also replaces the <x86intrin.h> header, which does not exist on Visual Studio, with the more scoped headers <tmmintrin.h> (for SSSE3) and <immintrin.h> (for BMI2/AVX2). Asides from fixing the open source build, the more scoped headers make it slightly less likely that newer intrinsics will creep in without proper gating. |
||
|
|
46768e335d |
Optimize decompression by about 0.82%.
Assembly difference: https://godbolt.org/z/cvlH9b name old time/op new time/op delta BM_UFlat/0 [html ] 42.3µs ± 0% 42.5µs ± 0% +0.57% (p=0.008 n=5+5) BM_UFlat/1 [urls ] 590µs ± 0% 575µs ± 0% -2.60% (p=0.008 n=5+5) BM_UFlat/2 [jpg ] 7.16µs ± 1% 7.15µs ± 1% ~ (p=0.841 n=5+5) BM_UFlat/3 [jpg_200 ] 131ns ± 0% 129ns ± 0% -1.41% (p=0.008 n=5+5) BM_UFlat/4 [pdf ] 8.21µs ± 0% 8.22µs ± 1% ~ (p=0.690 n=5+5) BM_UFlat/5 [html4 ] 222µs ± 0% 223µs ± 0% ~ (p=0.841 n=5+5) BM_UFlat/6 [txt1 ] 193µs ± 0% 192µs ± 0% ~ (p=0.095 n=5+5) BM_UFlat/7 [txt2 ] 171µs ± 0% 169µs ± 0% -0.83% (p=0.008 n=5+5) BM_UFlat/8 [txt3 ] 511µs ± 0% 510µs ± 0% ~ (p=0.841 n=5+5) BM_UFlat/9 [txt4 ] 717µs ± 0% 707µs ± 0% -1.42% (p=0.008 n=5+5) BM_UFlat/10 [pb ] 38.8µs ± 0% 39.3µs ± 0% +1.26% (p=0.008 n=5+5) BM_UFlat/11 [gaviota ] 190µs ± 0% 189µs ± 0% -0.43% (p=0.032 n=5+5) BM_UFlat/12 [cp ] 14.3µs ± 0% 14.2µs ± 0% -0.92% (p=0.008 n=5+5) BM_UFlat/13 [c ] 7.35µs ± 1% 7.30µs ± 0% -0.66% (p=0.032 n=5+5) BM_UFlat/14 [lsp ] 2.30µs ± 1% 2.28µs ± 0% ~ (p=0.056 n=5+5) BM_UFlat/15 [xls ] 983µs ± 0% 904µs ± 0% -7.99% (p=0.008 n=5+5) BM_UFlat/16 [xls_200 ] 213ns ± 0% 213ns ± 1% ~ (p=0.690 n=5+5) BM_UFlat/17 [bin ] 278µs ± 0% 274µs ± 0% -1.56% (p=0.008 n=5+5) BM_UFlat/18 [bin_200 ] 101ns ± 0% 101ns ± 1% ~ (p=1.000 n=5+5) BM_UFlat/19 [sum ] 29.4µs ± 1% 28.0µs ± 1% -4.98% (p=0.008 n=5+5) BM_UFlat/20 [man ] 2.97µs ± 0% 2.97µs ± 0% ~ (p=0.421 n=5+5) BM_UValidate/0 [html ] 33.6µs ± 0% 33.6µs ± 0% ~ (p=0.548 n=5+5) BM_UValidate/1 [urls ] 443µs ± 0% 441µs ± 0% -0.43% (p=0.016 n=4+5) BM_UValidate/2 [jpg ] 146ns ± 0% 144ns ± 0% -1.63% (p=0.008 n=5+5) BM_UValidate/3 [jpg_200 ] 98.6ns ± 0% 95.3ns ± 0% -3.32% (p=0.008 n=5+5) BM_UValidate/4 [pdf ] 2.89µs ± 1% 2.85µs ± 0% -1.22% (p=0.008 n=5+5) BM_UIOVec/0 [html ] 122µs ± 0% 122µs ± 0% ~ (p=1.000 n=5+5) BM_UIOVec/1 [urls ] 1.08ms ± 0% 1.08ms ± 0% ~ (p=0.095 n=5+5) BM_UIOVec/2 [jpg ] 7.51µs ± 4% 7.69µs ± 6% ~ (p=0.421 n=5+5) BM_UIOVec/3 [jpg_200 ] 327ns ± 0% 327ns ± 1% ~ (p=0.730 n=4+5) BM_UIOVec/4 [pdf ] 12.0µs ± 1% 12.0µs ± 0% ~ (p=0.286 n=5+4) BM_UFlatSink/0 [html ] 42.3µs ± 0% 42.5µs ± 0% +0.46% (p=0.008 n=5+5) BM_UFlatSink/1 [urls ] 589µs ± 0% 575µs ± 0% -2.36% (p=0.008 n=5+5) BM_UFlatSink/2 [jpg ] 7.40µs ± 8% 7.74µs ± 9% ~ (p=0.310 n=5+5) BM_UFlatSink/3 [jpg_200 ] 134ns ± 0% 131ns ± 0% -1.78% (p=0.008 n=5+5) BM_UFlatSink/4 [pdf ] 8.28µs ± 3% 8.35µs ± 6% ~ (p=0.548 n=5+5) BM_UFlatSink/5 [html4 ] 222µs ± 0% 222µs ± 0% ~ (p=0.690 n=5+5) BM_UFlatSink/6 [txt1 ] 193µs ± 0% 192µs ± 0% ~ (p=0.222 n=5+5) BM_UFlatSink/7 [txt2 ] 171µs ± 0% 169µs ± 0% -0.91% (p=0.008 n=5+5) BM_UFlatSink/8 [txt3 ] 512µs ± 0% 510µs ± 0% -0.28% (p=0.032 n=5+5) BM_UFlatSink/9 [txt4 ] 717µs ± 0% 707µs ± 0% -1.32% (p=0.008 n=5+5) BM_UFlatSink/10 [pb ] 38.7µs ± 0% 39.2µs ± 0% +1.29% (p=0.008 n=5+5) BM_UFlatSink/11 [gaviota ] 190µs ± 0% 189µs ± 0% -0.47% (p=0.008 n=5+5) BM_UFlatSink/12 [cp ] 14.3µs ± 0% 14.2µs ± 0% -0.65% (p=0.008 n=5+5) BM_UFlatSink/13 [c ] 7.36µs ± 1% 7.29µs ± 0% -0.92% (p=0.008 n=5+5) BM_UFlatSink/14 [lsp ] 2.30µs ± 1% 2.29µs ± 0% ~ (p=0.841 n=5+5) BM_UFlatSink/15 [xls ] 980µs ± 0% 903µs ± 0% -7.92% (p=0.008 n=5+5) BM_UFlatSink/16 [xls_200 ] 217ns ± 0% 215ns ± 0% -0.94% (p=0.008 n=5+5) BM_UFlatSink/17 [bin ] 278µs ± 0% 273µs ± 0% -1.56% (p=0.008 n=5+5) BM_UFlatSink/18 [bin_200 ] 107ns ± 5% 104ns ± 0% ~ (p=0.056 n=5+5) BM_UFlatSink/19 [sum ] 29.5µs ± 0% 27.9µs ± 0% -5.32% (p=0.008 n=5+5) BM_UFlatSink/20 [man ] 3.01µs ± 0% 3.00µs ± 1% ~ (p=0.310 n=5+5) BM_ZFlat/0 [html (22.31 %) ] 127µs ± 0% 126µs ± 0% -0.46% (p=0.008 n=5+5) BM_ZFlat/1 [urls (47.78 %) ] 1.67ms ± 0% 1.67ms ± 0% ~ (p=0.548 n=5+5) BM_ZFlat/2 [jpg (99.95 %) ] 11.5µs ± 3% 11.6µs ± 6% ~ (p=0.841 n=5+5) BM_ZFlat/3 [jpg_200 (73.00 %)] 350ns ± 2% 347ns ± 0% ~ (p=0.905 n=5+4) BM_ZFlat/4 [pdf (83.30 %) ] 14.6µs ± 4% 14.6µs ± 1% ~ (p=0.421 n=5+5) BM_ZFlat/5 [html4 (22.52 %) ] 553µs ± 0% 553µs ± 0% ~ (p=0.690 n=5+5) BM_ZFlat/6 [txt1 (57.88 %) ] 540µs ± 0% 540µs ± 0% ~ (p=1.000 n=5+5) BM_ZFlat/7 [txt2 (61.91 %) ] 481µs ± 0% 479µs ± 0% -0.54% (p=0.008 n=5+5) BM_ZFlat/8 [txt3 (54.99 %) ] 1.44ms ± 0% 1.44ms ± 0% ~ (p=0.222 n=5+5) BM_ZFlat/9 [txt4 (66.26 %) ] 1.97ms ± 0% 1.97ms ± 0% ~ (p=0.222 n=5+5) BM_ZFlat/10 [pb (19.68 %) ] 110µs ± 0% 110µs ± 0% ~ (p=0.841 n=5+5) BM_ZFlat/11 [gaviota (37.72 %)] 411µs ± 0% 410µs ± 0% ~ (p=0.222 n=5+5) BM_ZFlat/12 [cp (48.12 %) ] 46.1µs ± 1% 45.8µs ± 0% ~ (p=0.056 n=5+5) BM_ZFlat/13 [c (42.47 %) ] 17.6µs ± 0% 17.6µs ± 1% ~ (p=0.310 n=5+5) BM_ZFlat/14 [lsp (48.37 %) ] 5.46µs ± 1% 5.49µs ± 0% ~ (p=0.222 n=5+5) BM_ZFlat/15 [xls (41.23 %) ] 1.62ms ± 0% 1.61ms ± 0% ~ (p=0.190 n=4+5) BM_ZFlat/16 [xls_200 (78.00 %)] 392ns ± 2% 385ns ± 1% ~ (p=0.200 n=4+4) BM_ZFlat/17 [bin (18.11 %) ] 509µs ± 0% 508µs ± 0% -0.26% (p=0.008 n=5+5) BM_ZFlat/18 [bin_200 (7.50 %) ] 90.2ns ±15% 80.8ns ± 0% -10.39% (p=0.016 n=5+4) BM_ZFlat/19 [sum (48.96 %) ] 81.1µs ± 0% 79.1µs ± 1% -2.37% (p=0.008 n=5+5) BM_ZFlat/20 [man (59.21 %) ] 7.61µs ± 1% 7.57µs ± 1% ~ (p=0.421 n=5+5) name old allocs/op new allocs/op delta BM_UFlat/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/5 [html4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/6 [txt1 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/7 [txt2 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/8 [txt3 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/9 [txt4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/10 [pb ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/11 [gaviota ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/12 [cp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/13 [c ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/14 [lsp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/15 [xls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/16 [xls_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/17 [bin ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/18 [bin_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/19 [sum ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlat/20 [man ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UValidate/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UIOVec/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/0 [html ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/1 [urls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/2 [jpg ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/3 [jpg_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/4 [pdf ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/5 [html4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/6 [txt1 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/7 [txt2 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/8 [txt3 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/9 [txt4 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/10 [pb ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/11 [gaviota ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/12 [cp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/13 [c ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/14 [lsp ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/15 [xls ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/16 [xls_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/17 [bin ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/18 [bin_200 ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/19 [sum ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_UFlatSink/20 [man ] 0.00 ±NaN% 0.00 ±NaN% ~ (all samples are equal) BM_ZFlat/0 [html (22.31 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/1 [urls (47.78 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/2 [jpg (99.95 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/3 [jpg_200 (73.00 %)] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/4 [pdf (83.30 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/5 [html4 (22.52 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/6 [txt1 (57.88 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/7 [txt2 (61.91 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/8 [txt3 (54.99 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/9 [txt4 (66.26 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/10 [pb (19.68 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/11 [gaviota (37.72 %)] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/12 [cp (48.12 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/13 [c (42.47 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/14 [lsp (48.37 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/15 [xls (41.23 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/16 [xls_200 (78.00 %)] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/17 [bin (18.11 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/18 [bin_200 (7.50 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/19 [sum (48.96 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) BM_ZFlat/20 [man (59.21 %) ] 1.00 ± 0% 1.00 ± 0% ~ (all samples are equal) name old peak-mem(Bytes)/op new peak-mem(Bytes)/op delta BM_UFlat/0 [html ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/1 [urls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/2 [jpg ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/3 [jpg_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/4 [pdf ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/5 [html4 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/6 [txt1 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/7 [txt2 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/8 [txt3 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/9 [txt4 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/10 [pb ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/11 [gaviota ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/12 [cp ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/13 [c ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/14 [lsp ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/15 [xls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/16 [xls_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/17 [bin ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/18 [bin_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/19 [sum ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlat/20 [man ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/0 [html ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/1 [urls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/2 [jpg ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/3 [jpg_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UValidate/4 [pdf ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/0 [html ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/1 [urls ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/2 [jpg ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/3 [jpg_200 ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UIOVec/4 [pdf ] 4.00 ± 0% 4.00 ± 0% ~ (all samples are equal) BM_UFlatSink/0 [html ] 102k ± 0% 102k ± 0% ~ (all samples are equal) BM_UFlatSink/1 [urls ] 702k ± 0% 702k ± 0% ~ (all samples are equal) BM_UFlatSink/2 [jpg ] 123k ± 0% 123k ± 0% ~ (all samples are equal) BM_UFlatSink/3 [jpg_200 ] 201 ± 0% 201 ± 0% ~ (all samples are equal) BM_UFlatSink/4 [pdf ] 102k ± 0% 102k ± 0% ~ (all samples are equal) BM_UFlatSink/5 [html4 ] 410k ± 0% 410k ± 0% ~ (all samples are equal) BM_UFlatSink/6 [txt1 ] 152k ± 0% 152k ± 0% ~ (all samples are equal) BM_UFlatSink/7 [txt2 ] 125k ± 0% 125k ± 0% ~ (all samples are equal) BM_UFlatSink/8 [txt3 ] 427k ± 0% 427k ± 0% ~ (all samples are equal) BM_UFlatSink/9 [txt4 ] 482k ± 0% 482k ± 0% ~ (all samples are equal) BM_UFlatSink/10 [pb ] 119k ± 0% 119k ± 0% ~ (all samples are equal) BM_UFlatSink/11 [gaviota ] 184k ± 0% 184k ± 0% ~ (all samples are equal) BM_UFlatSink/12 [cp ] 24.6k ± 0% 24.6k ± 0% ~ (all samples are equal) BM_UFlatSink/13 [c ] 11.2k ± 0% 11.2k ± 0% ~ (all samples are equal) BM_UFlatSink/14 [lsp ] 3.72k ± 0% 3.72k ± 0% ~ (all samples are equal) BM_UFlatSink/15 [xls ] 1.03M ± 0% 1.03M ± 0% ~ (all samples are equal) BM_UFlatSink/16 [xls_200 ] 201 ± 0% 201 ± 0% ~ (all samples are equal) BM_UFlatSink/17 [bin ] 513k ± 0% 513k ± 0% ~ (all samples are equal) BM_UFlatSink/18 [bin_200 ] 201 ± 0% 201 ± 0% ~ (all samples are equal) BM_UFlatSink/19 [sum ] 38.2k ± 0% 38.2k ± 0% ~ (all samples are equal) BM_UFlatSink/20 [man ] 4.23k ± 0% 4.23k ± 0% ~ (all samples are equal) BM_ZFlat/0 [html (22.31 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/1 [urls (47.78 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/2 [jpg (99.95 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/3 [jpg_200 (73.00 %)] 30.7k ± 0% 30.7k ± 0% ~ (all samples are equal) BM_ZFlat/4 [pdf (83.30 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/5 [html4 (22.52 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/6 [txt1 (57.88 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/7 [txt2 (61.91 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/8 [txt3 (54.99 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/9 [txt4 (66.26 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/10 [pb (19.68 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/11 [gaviota (37.72 %)] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/12 [cp (48.12 %) ] 86.1k ± 0% 86.1k ± 0% ~ (all samples are equal) BM_ZFlat/13 [c (42.47 %) ] 57.0k ± 0% 57.0k ± 0% ~ (all samples are equal) BM_ZFlat/14 [lsp (48.37 %) ] 30.6k ± 0% 30.6k ± 0% ~ (all samples are equal) BM_ZFlat/15 [xls (41.23 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/16 [xls_200 (78.00 %)] 30.7k ± 0% 30.7k ± 0% ~ (all samples are equal) BM_ZFlat/17 [bin (18.11 %) ] 175k ± 0% 175k ± 0% ~ (all samples are equal) BM_ZFlat/18 [bin_200 (7.50 %) ] 30.7k ± 0% 30.7k ± 0% ~ (all samples are equal) BM_ZFlat/19 [sum (48.96 %) ] 116k ± 0% 116k ± 0% ~ (all samples are equal) BM_ZFlat/20 [man (59.21 %) ] 30.6k ± 0% 30.6k ± 0% ~ (all samples are equal) name old speed new speed delta BM_UFlat/0 [html ] 2.43GB/s ± 0% 2.41GB/s ± 0% -0.59% (p=0.032 n=5+5) BM_UFlat/1 [urls ] 1.19GB/s ± 1% 1.22GB/s ± 0% +2.58% (p=0.008 n=5+5) BM_UFlat/2 [jpg ] 17.2GB/s ± 1% 17.3GB/s ± 1% ~ (p=0.421 n=5+5) BM_UFlat/3 [jpg_200 ] 1.54GB/s ± 1% 1.56GB/s ± 1% +1.23% (p=0.008 n=5+5) BM_UFlat/4 [pdf ] 12.5GB/s ± 1% 12.5GB/s ± 0% ~ (p=0.413 n=5+4) BM_UFlat/5 [html4 ] 1.85GB/s ± 1% 1.85GB/s ± 0% ~ (p=0.690 n=5+5) BM_UFlat/6 [txt1 ] 793MB/s ± 0% 794MB/s ± 0% ~ (p=0.690 n=5+5) BM_UFlat/7 [txt2 ] 738MB/s ± 0% 742MB/s ± 1% ~ (p=0.151 n=5+5) BM_UFlat/8 [txt3 ] 839MB/s ± 0% 838MB/s ± 0% ~ (p=0.310 n=5+5) BM_UFlat/9 [txt4 ] 674MB/s ± 0% 684MB/s ± 0% +1.55% (p=0.008 n=5+5) BM_UFlat/10 [pb ] 3.07GB/s ± 1% 3.03GB/s ± 1% -1.27% (p=0.008 n=5+5) BM_UFlat/11 [gaviota ] 974MB/s ± 0% 978MB/s ± 0% +0.50% (p=0.032 n=5+5) BM_UFlat/12 [cp ] 1.72GB/s ± 0% 1.74GB/s ± 1% +0.79% (p=0.008 n=5+5) BM_UFlat/13 [c ] 1.52GB/s ± 1% 1.53GB/s ± 1% ~ (p=0.421 n=5+5) BM_UFlat/14 [lsp ] 1.62GB/s ± 1% 1.64GB/s ± 0% ~ (p=0.151 n=5+5) BM_UFlat/15 [xls ] 1.05GB/s ± 0% 1.14GB/s ± 1% +8.60% (p=0.008 n=5+5) BM_UFlat/16 [xls_200 ] 942MB/s ± 0% 941MB/s ± 1% ~ (p=0.690 n=5+5) BM_UFlat/17 [bin ] 1.85GB/s ± 0% 1.88GB/s ± 0% +1.60% (p=0.008 n=5+5) BM_UFlat/18 [bin_200 ] 1.99GB/s ± 0% 1.99GB/s ± 0% ~ (p=0.421 n=5+5) BM_UFlat/19 [sum ] 1.30GB/s ± 1% 1.37GB/s ± 1% +5.28% (p=0.008 n=5+5) BM_UFlat/20 [man ] 1.43GB/s ± 1% 1.42GB/s ± 0% ~ (p=0.421 n=5+5) BM_UValidate/0 [html ] 3.07GB/s ± 0% 3.05GB/s ± 1% ~ (p=0.222 n=5+5) BM_UValidate/1 [urls ] 1.59GB/s ± 0% 1.60GB/s ± 0% ~ (p=0.310 n=5+5) BM_UValidate/2 [jpg ] 845GB/s ± 0% 860GB/s ± 0% +1.75% (p=0.008 n=5+5) BM_UValidate/3 [jpg_200 ] 2.04GB/s ± 1% 2.11GB/s ± 1% +3.61% (p=0.008 n=5+5) BM_UValidate/4 [pdf ] 35.6GB/s ± 1% 36.1GB/s ± 1% +1.40% (p=0.016 n=5+5) BM_UIOVec/0 [html ] 845MB/s ± 1% 843MB/s ± 1% ~ (p=0.310 n=5+5) BM_UIOVec/1 [urls ] 653MB/s ± 0% 651MB/s ± 1% ~ (p=0.190 n=4+5) BM_UIOVec/2 [jpg ] 16.4GB/s ± 4% 16.1GB/s ± 5% ~ (p=0.548 n=5+5) BM_UIOVec/3 [jpg_200 ] 611MB/s ± 2% 614MB/s ± 0% ~ (p=0.548 n=5+5) BM_UIOVec/4 [pdf ] 8.53GB/s ± 1% 8.52GB/s ± 3% ~ (p=0.841 n=5+5) BM_UFlatSink/0 [html ] 2.43GB/s ± 1% 2.42GB/s ± 0% ~ (p=0.222 n=5+5) BM_UFlatSink/1 [urls ] 1.20GB/s ± 0% 1.23GB/s ± 1% +2.38% (p=0.008 n=5+5) BM_UFlatSink/2 [jpg ] 16.7GB/s ± 8% 16.0GB/s ± 8% ~ (p=0.151 n=5+5) BM_UFlatSink/3 [jpg_200 ] 1.50GB/s ± 0% 1.53GB/s ± 0% +2.13% (p=0.008 n=5+5) BM_UFlatSink/4 [pdf ] 12.5GB/s ± 0% 12.3GB/s ± 5% ~ (p=0.730 n=4+5) BM_UFlatSink/5 [html4 ] 1.85GB/s ± 0% 1.84GB/s ± 0% ~ (p=0.151 n=5+5) BM_UFlatSink/6 [txt1 ] 791MB/s ± 0% 791MB/s ± 0% ~ (p=1.000 n=5+5) BM_UFlatSink/7 [txt2 ] 735MB/s ± 0% 739MB/s ± 0% +0.51% (p=0.016 n=5+4) BM_UFlatSink/8 [txt3 ] 838MB/s ± 0% 840MB/s ± 0% ~ (p=0.151 n=5+5) BM_UFlatSink/9 [txt4 ] 674MB/s ± 0% 683MB/s ± 0% +1.37% (p=0.008 n=5+5) BM_UFlatSink/10 [pb ] 3.07GB/s ± 0% 3.03GB/s ± 1% -1.34% (p=0.008 n=5+5) BM_UFlatSink/11 [gaviota ] 973MB/s ± 0% 975MB/s ± 0% ~ (p=0.310 n=5+5) BM_UFlatSink/12 [cp ] 1.73GB/s ± 1% 1.74GB/s ± 1% ~ (p=0.056 n=5+5) BM_UFlatSink/13 [c ] 1.52GB/s ± 1% 1.53GB/s ± 1% +0.76% (p=0.032 n=5+5) BM_UFlatSink/14 [lsp ] 1.62GB/s ± 0% 1.63GB/s ± 0% ~ (p=0.548 n=5+5) BM_UFlatSink/15 [xls ] 1.05GB/s ± 0% 1.14GB/s ± 0% +8.57% (p=0.008 n=5+5) BM_UFlatSink/16 [xls_200 ] 925MB/s ± 0% 933MB/s ± 0% +0.85% (p=0.008 n=5+5) BM_UFlatSink/17 [bin ] 1.85GB/s ± 1% 1.88GB/s ± 0% +1.47% (p=0.008 n=5+5) BM_UFlatSink/18 [bin_200 ] 1.88GB/s ± 5% 1.93GB/s ± 0% ~ (p=0.421 n=5+5) BM_UFlatSink/19 [sum ] 1.30GB/s ± 1% 1.37GB/s ± 1% +5.18% (p=0.008 n=5+5) BM_UFlatSink/20 [man ] 1.41GB/s ± 0% 1.41GB/s ± 1% ~ (p=0.222 n=5+5) BM_ZFlat/0 [html (22.31 %) ] 809MB/s ± 0% 814MB/s ± 1% +0.61% (p=0.016 n=5+5) BM_ZFlat/1 [urls (47.78 %) ] 423MB/s ± 0% 422MB/s ± 0% ~ (p=0.548 n=5+5) BM_ZFlat/2 [jpg (99.95 %) ] 10.8GB/s ± 3% 10.6GB/s ± 5% ~ (p=0.690 n=5+5) BM_ZFlat/3 [jpg_200 (73.00 %)] 575MB/s ± 2% 579MB/s ± 0% ~ (p=1.000 n=5+4) BM_ZFlat/4 [pdf (83.30 %) ] 7.06GB/s ± 4% 7.05GB/s ± 2% ~ (p=0.421 n=5+5) BM_ZFlat/5 [html4 (22.52 %) ] 745MB/s ± 0% 744MB/s ± 0% ~ (p=0.421 n=5+5) BM_ZFlat/6 [txt1 (57.88 %) ] 282MB/s ± 0% 282MB/s ± 1% ~ (p=1.000 n=5+5) BM_ZFlat/7 [txt2 (61.91 %) ] 261MB/s ± 0% 263MB/s ± 0% +0.55% (p=0.032 n=5+5) BM_ZFlat/8 [txt3 (54.99 %) ] 297MB/s ± 1% 297MB/s ± 0% ~ (p=1.000 n=5+5) BM_ZFlat/9 [txt4 (66.26 %) ] 245MB/s ± 0% 246MB/s ± 0% ~ (p=0.286 n=5+5) BM_ZFlat/10 [pb (19.68 %) ] 1.08GB/s ± 1% 1.08GB/s ± 0% ~ (p=0.056 n=5+5) BM_ZFlat/11 [gaviota (37.72 %)] 450MB/s ± 0% 452MB/s ± 0% +0.55% (p=0.016 n=5+5) BM_ZFlat/12 [cp (48.12 %) ] 537MB/s ± 1% 538MB/s ± 0% ~ (p=0.421 n=5+5) BM_ZFlat/13 [c (42.47 %) ] 637MB/s ± 1% 634MB/s ± 1% ~ (p=0.222 n=5+5) BM_ZFlat/14 [lsp (48.37 %) ] 684MB/s ± 1% 680MB/s ± 0% ~ (p=0.310 n=5+5) BM_ZFlat/15 [xls (41.23 %) ] 641MB/s ± 0% 640MB/s ± 1% ~ (p=0.310 n=5+5) BM_ZFlat/16 [xls_200 (78.00 %)] 501MB/s ± 9% 521MB/s ± 1% ~ (p=0.111 n=5+4) BM_ZFlat/17 [bin (18.11 %) ] 1.01GB/s ± 0% 1.02GB/s ± 1% ~ (p=0.151 n=5+5) BM_ZFlat/18 [bin_200 (7.50 %) ] 2.24GB/s ±14% 2.48GB/s ± 0% ~ (p=0.063 n=5+4) BM_ZFlat/19 [sum (48.96 %) ] 473MB/s ± 1% 485MB/s ± 1% +2.47% (p=0.008 n=5+5) BM_ZFlat/20 [man (59.21 %) ] 558MB/s ± 1% 558MB/s ± 1% ~ (p=1.000 n=5+5) |