Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lujiajing1126/17c5372af0e940a21067a3e6f8554594 to your computer and use it in GitHub Desktop.
Save lujiajing1126/17c5372af0e940a21067a3e6f8554594 to your computer and use it in GitHub Desktop.
Load factor banchmark for HashMap
package com.example;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;
import org.openjdk.jmh.profile.GCProfiler;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@State(Scope.Benchmark)
public class HashMapLoadFactorBenchmark {
@Param({"1", "2", "3", "4", "5", "10", "15", "20"})
public int arg;
@Benchmark
public void loadFactorDefault(Blackhole bh) {
final Map<String, String> map = new HashMap<>(arg);
for (int i = 0; i < arg; i++) {
map.put("key" + i, "value");
}
bh.consume(map);
}
@Benchmark
public void loadFactorOne(Blackhole bh) {
final Map<String, String> map = new HashMap<>(arg, 1);
for (int i = 0; i < arg; i++) {
map.put("key" + i, "value");
}
bh.consume(map);
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(".*" + HashMapLoadFactorBenchmark.class.getSimpleName() + ".*")
.addProfiler(GCProfiler.class)
.build();
new Runner(opt).run();
}
}
@lujiajing1126
Copy link
Author

# JMH version: 1.35
# VM version: JDK 1.8.0_332, OpenJDK 64-Bit Server VM, 25.332-b09
# VM invoker: /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/bin/java
# VM options: -Dvisualvm.id=246227817472579 -javaagent:/Users/megrez/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/221.5080.210/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=65144:/Users/megrez/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/221.5080.210/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8
# Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 5 iterations, 1 s each
# Measurement: 5 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                                                      (arg)  Mode  Cnt     Score     Error   Units
HashMapLoadFactorBenchmark.loadFactorDefault                                       1  avgt   25    75,772 ±   3,381   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                        1  avgt   25  1479,494 ±  58,969  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                   1  avgt   25   176,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space               1  avgt   25  1497,727 ± 124,847  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm          1  avgt   25   178,235 ±  13,339    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space           1  avgt   25     0,120 ±   0,043  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm      1  avgt   25     0,014 ±   0,005    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                             1  avgt   25   222,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                              1  avgt   25   149,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                       2  avgt   25   117,864 ±   5,869   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                        2  avgt   25  1427,443 ±  64,220  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                   2  avgt   25   264,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space               2  avgt   25  1441,819 ± 106,096  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm          2  avgt   25   266,535 ±  14,253    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space           2  avgt   25     0,134 ±   0,024  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm      2  avgt   25     0,025 ±   0,004    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                             2  avgt   25   238,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                              2  avgt   25   156,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                       3  avgt   25   111,350 ±   3,185   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                        3  avgt   25  1828,217 ±  53,365  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                   3  avgt   25   320,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space               3  avgt   25  1824,349 ±  76,627  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm          3  avgt   25   319,344 ±   9,780    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space           3  avgt   25     0,164 ±   0,036  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm      3  avgt   25     0,029 ±   0,006    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                             3  avgt   25   331,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                              3  avgt   25   204,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                       4  avgt   25   166,416 ±   2,838   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                        4  avgt   25  1710,214 ±  30,180  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                   4  avgt   25   448,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space               4  avgt   25  1727,954 ±  69,349  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm          4  avgt   25   452,573 ±  14,762    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space           4  avgt   25     0,167 ±   0,034  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm      4  avgt   25     0,044 ±   0,009    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                             4  avgt   25   323,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                              4  avgt   25   195,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                       5  avgt   25   166,058 ±   7,654   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                        5  avgt   25  1903,606 ±  82,614  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                   5  avgt   25   496,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space               5  avgt   25  1909,090 ± 111,205  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm          5  avgt   25   497,219 ±  15,747    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space           5  avgt   25     0,163 ±   0,050  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm      5  avgt   25     0,043 ±   0,013    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                             5  avgt   25   315,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                              5  avgt   25   218,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                      10  avgt   25   310,401 ±   9,538   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                       10  avgt   25  1900,882 ±  58,066  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                  10  avgt   25   928,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space              10  avgt   25  1913,079 ± 119,497  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm         10  avgt   25   933,815 ±  48,248    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space          10  avgt   25     0,149 ±   0,049  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm     10  avgt   25     0,073 ±   0,025    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                            10  avgt   25   253,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                             10  avgt   25   168,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                      15  avgt   25   519,235 ±  15,874   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                       15  avgt   25  1851,508 ±  55,599  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                  15  avgt   25  1512,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space              15  avgt   25  1897,637 ± 148,891  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm         15  avgt   25  1548,330 ±  98,252    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space          15  avgt   25     0,143 ±   0,044  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm     15  avgt   25     0,117 ±   0,038    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                            15  avgt   25   254,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                             15  avgt   25   161,000                ms
HashMapLoadFactorBenchmark.loadFactorDefault                                      20  avgt   25   599,349 ±  12,737   ns/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate                       20  avgt   25  1985,027 ±  43,572  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.alloc.rate.norm                  20  avgt   25  1872,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space              20  avgt   25  1985,114 ± 107,465  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Eden_Space.norm         20  avgt   25  1873,016 ± 103,250    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space          20  avgt   25     0,165 ±   0,060  MB/sec
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.churn.PS_Survivor_Space.norm     20  avgt   25     0,156 ±   0,058    B/op
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.count                            20  avgt   25   270,000            counts
HashMapLoadFactorBenchmark.loadFactorDefault:·gc.time                             20  avgt   25   169,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                           1  avgt   25    53,071 ±   1,333   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                            1  avgt   25  1820,995 ±  46,830  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                       1  avgt   25   152,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                   1  avgt   25  1829,017 ±  71,612  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm              1  avgt   25   152,711 ±   5,195    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space               1  avgt   25     0,144 ±   0,051  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm          1  avgt   25     0,012 ±   0,004    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                 1  avgt   25   285,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                  1  avgt   25   179,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                           2  avgt   25    82,399 ±   2,218   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                            2  avgt   25  1790,075 ±  50,139  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                       2  avgt   25   232,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                   2  avgt   25  1806,739 ±  81,489  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm              2  avgt   25   234,071 ±   6,514    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space               2  avgt   25     0,153 ±   0,025  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm          2  avgt   25     0,020 ±   0,003    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                 2  avgt   25   328,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                  2  avgt   25   197,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                           3  avgt   25   112,384 ±   2,725   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                            3  avgt   25  1810,471 ±  43,690  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                       3  avgt   25   320,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                   3  avgt   25  1820,285 ±  96,264  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm              3  avgt   25   321,645 ±  13,934    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space               3  avgt   25     0,153 ±   0,045  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm          3  avgt   25     0,027 ±   0,008    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                 3  avgt   25   289,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                  3  avgt   25   186,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                           4  avgt   25   141,577 ±   4,940   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                            4  avgt   25  1794,521 ±  61,711  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                       4  avgt   25   400,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                   4  avgt   25  1813,088 ±  83,644  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm              4  avgt   25   404,270 ±  14,350    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space               4  avgt   25     0,145 ±   0,042  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm          4  avgt   25     0,032 ±   0,009    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                 4  avgt   25   268,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                  4  avgt   25   184,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                           5  avgt   25   167,457 ±   6,052   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                            5  avgt   25  1883,273 ±  69,046  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                       5  avgt   25   496,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                   5  avgt   25  1925,165 ± 115,713  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm              5  avgt   25   506,831 ±  20,620    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space               5  avgt   25     0,143 ±   0,056  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm          5  avgt   25     0,038 ±   0,015    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                 5  avgt   25   243,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                  5  avgt   25   166,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                          10  avgt   25   314,866 ±  10,111   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                           10  avgt   25  1871,971 ±  59,206  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                      10  avgt   25   928,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                  10  avgt   25  1893,638 ± 121,116  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm             10  avgt   25   937,935 ±  42,194    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space              10  avgt   25     0,177 ±   0,041  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm         10  avgt   25     0,088 ±   0,021    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                10  avgt   25   307,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                 10  avgt   25   206,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                          15  avgt   25   461,378 ±  18,746   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                           15  avgt   25  1887,469 ±  73,832  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                      15  avgt   25  1368,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                  15  avgt   25  1901,227 ± 100,419  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm             15  avgt   25  1377,631 ±  42,930    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space              15  avgt   25     0,186 ±   0,037  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm         15  avgt   25     0,135 ±   0,027    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                15  avgt   25   346,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                 15  avgt   25   215,000                ms
HashMapLoadFactorBenchmark.loadFactorOne                                          20  avgt   25   590,232 ±  27,307   ns/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate                           20  avgt   25  2020,849 ±  91,382  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.alloc.rate.norm                      20  avgt   25  1872,000 ±   0,001    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space                  20  avgt   25  2060,569 ± 113,180  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Eden_Space.norm             20  avgt   25  1909,487 ±  71,214    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space              20  avgt   25     0,152 ±   0,048  MB/sec
HashMapLoadFactorBenchmark.loadFactorOne:·gc.churn.PS_Survivor_Space.norm         20  avgt   25     0,143 ±   0,047    B/op
HashMapLoadFactorBenchmark.loadFactorOne:·gc.count                                20  avgt   25   251,000            counts
HashMapLoadFactorBenchmark.loadFactorOne:·gc.time                                 20  avgt   25   155,000                ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment