Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove adler32 COPY variant (memcpy is faster) #189

Merged
merged 1 commit into from
Sep 19, 2024

Conversation

folkertdev
Copy link
Collaborator

for small chunk sizes anyway, for larger ones it does not matter, but the code without the copy is a lot simpler.

Benchmark 1 (85 runs): target/release/examples/uncompress-baseline rs-chunked 5 silesia-small.tar.gz
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          58.8ms ±  505us    58.0ms … 60.8ms          3 ( 4%)        0%
  peak_rss           24.1MB ± 70.3KB    23.9MB … 24.1MB          0 ( 0%)        0%
  cpu_cycles          232M  ± 1.66M      230M  …  242M           7 ( 8%)        0%
  instructions        677M  ±  245       677M  …  677M           1 ( 1%)        0%
  cache_references   3.11M  ±  403K     2.91M  … 6.74M           1 ( 1%)        0%
  cache_misses        120K  ± 10.7K      107K  …  172K           5 ( 6%)        0%
  branch_misses      3.23M  ± 10.2K     3.21M  … 3.27M           1 ( 1%)        0%
Benchmark 2 (87 runs): target/release/examples/blogpost-uncompress rs-chunked 5 silesia-small.tar.gz
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          57.7ms ±  934us    56.9ms … 64.1ms          4 ( 5%)        ⚡-  1.9% ±  0.4%
  peak_rss           24.1MB ± 64.2KB    23.9MB … 24.1MB          0 ( 0%)          +  0.0% ±  0.1%
  cpu_cycles          226M  ± 3.72M      225M  …  253M           5 ( 6%)        ⚡-  2.2% ±  0.4%
  instructions        672M  ±  289       672M  …  672M           0 ( 0%)          -  0.8% ±  0.0%
  cache_references   3.13M  ±  116K     2.87M  … 3.95M           2 ( 2%)          +  0.6% ±  2.8%
  cache_misses        146K  ± 14.8K      123K  …  211K           3 ( 3%)        💩+ 21.7% ±  3.2%
  branch_misses      3.10M  ± 6.17K     3.10M  … 3.15M           2 ( 2%)        ⚡-  4.0% ±  0.1%
Benchmark 1 (111 runs): target/release/examples/uncompress-baseline rs-chunked 7 silesia-small.tar.gz
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          45.0ms ± 1.71ms    43.9ms … 62.3ms          5 ( 5%)        0%
  peak_rss           24.1MB ± 67.3KB    23.9MB … 24.1MB          0 ( 0%)        0%
  cpu_cycles          169M  ± 6.37M      167M  …  234M          13 (12%)        0%
  instructions        502M  ±  261       502M  …  502M           0 ( 0%)        0%
  cache_references   3.14M  ±  375K     2.88M  … 6.47M           5 ( 5%)        0%
  cache_misses        125K  ± 33.2K      108K  …  369K           5 ( 5%)        0%
  branch_misses      1.98M  ± 6.39K     1.98M  … 2.01M          10 ( 9%)        0%
Benchmark 2 (112 runs): target/release/examples/blogpost-uncompress rs-chunked 7 silesia-small.tar.gz
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          44.9ms ±  458us    44.0ms … 46.4ms          7 ( 6%)          -  0.2% ±  0.7%
  peak_rss           24.1MB ± 68.1KB    23.9MB … 24.1MB          0 ( 0%)          -  0.0% ±  0.1%
  cpu_cycles          168M  ± 1.16M      167M  …  175M          14 (13%)          -  0.3% ±  0.7%
  instructions        500M  ±  237       500M  …  500M           0 ( 0%)          -  0.3% ±  0.0%
  cache_references   3.18M  ±  153K     2.94M  … 4.52M           2 ( 2%)          +  1.2% ±  2.4%
  cache_misses        113K  ± 5.27K     98.8K  …  132K           8 ( 7%)        ⚡-  9.2% ±  5.0%
  branch_misses      2.00M  ± 1.63K     1.99M  … 2.00M           1 ( 1%)          +  0.7% ±  0.1%

@folkertdev folkertdev merged commit 9b5a343 into main Sep 19, 2024
18 checks passed
@folkertdev folkertdev deleted the adler32-copy-with-memcpy branch September 19, 2024 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant