Skip to content
Snippets Groups Projects
  1. Nov 14, 2021
  2. Nov 13, 2021
  3. Nov 12, 2021
  4. Nov 11, 2021
  5. Nov 10, 2021
  6. Nov 09, 2021
  7. Nov 05, 2021
  8. Nov 04, 2021
  9. Nov 02, 2021
  10. Oct 29, 2021
  11. Oct 27, 2021
  12. Oct 26, 2021
  13. Oct 25, 2021
  14. Oct 22, 2021
    • Yann Collet's avatar
      Merge pull request #2822 from marxin/fix-zstd-thread-pool-documentation · 0a794f5a
      Yann Collet authored
      Support thread pool section in HTML documentation.
    • Nick Terrell's avatar
      [lazy] Speed up compilation times · 13cad3ab
      Nick Terrell authored
      Speed up compilation times by moving each specialized search function
      into its own function. This is faster because compilers can handle many
      smaller functions much faster than one gigantic function. The previous
      approach generated one giant function with `switch` statements and
      inlining to select the implementation.
      
      | Compiler | Flags                               | Dev Time (s) | PR Time (s) | Delta |
      |----------|-------------------------------------|--------------|-------------|-------|
      | gcc      | -O3                                 |         16.5 |         5.6 |  -66% |
      | gcc      | -O3 -g -fsanitize=address,undefined |        158.9 |        38.2 |  -75% |
      | clang    | -O3                                 |         36.5 |         5.5 |  -85% |
      | clang    | -O3 -g -fsanitize=address,undefined |         27.8 |        17.5 |  -37% |
      
      This also reduces the binary size because the search functions are no
      longer inlined into the main body.
      
      | Compiler | Dev libzstd.a Size (B) | PR libzstd.a Size (B) | Delta |
      |----------|------------------------|-----------------------|-------|
      | gcc      |                1563868 |               1308844 |  -16% |
      | clang    |                1924372 |               1376020 |  -28% |
      
      Finally, the performance is not impacted significantly by this change,
      in fact we generally see a small speed boost.
      
      | Compiler | Level | Dev Speed (MB/s) | PR Speed (MB/s) | Delta |
      |----------|-------|------------------|-----------------|-------|
      | gcc      |     5 |            110.6 |           110.0 | -0.5% |
      | gcc      |     7 |             70.4 |            72.2 | +2.5% |
      | gcc      |     9 |             53.2 |            53.5 | +0.5% |
      | gcc      |    13 |             12.7 |            12.9 | +1.5% |
      | clang    |     5 |            113.9 |           110.4 | -3.0% |
      | clang    |     7 |             67.7 |            70.6 | +4.2% |
      | clang    |     9 |             51.9 |            52.2 | +0.5% |
      | clang    |    13 |             12.4 |            13.3 | +7.2% |
      
      The compression strategy is unmodified in this PR, so the compressed size
      should be exactly the same. I may have a follow up PR to slightly improve
      the compression ratio, if it doesn't cost too much speed.
      13cad3ab
  15. Oct 21, 2021
  16. Oct 20, 2021
  17. Oct 18, 2021
  18. Oct 15, 2021
  19. Oct 13, 2021
Loading