Created
January 6, 2015 18:33
-
-
Save tinkerware/f410f139b775f83a6039 to your computer and use it in GitHub Desktop.
Okio BufferPerformanceBench runs - EC2 c3.8xlarge
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# JMH 1.4.1 (released 12 days ago) | |
# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java | |
# VM options: <none> | |
# Warmup: 10 iterations, 10 s each | |
# Measurement: 5 iterations, 60 s each | |
# Timeout: 10 min per iteration | |
# Threads: 12 threads, will synchronize iterations | |
# Benchmark mode: Throughput, ops/time | |
# Benchmark: com.squareup.okio.benchmarks.BufferPerformanceBench.cold | |
# Parameters: (maxReadBytes = 1024, maxThinkMicros = 1000, maxWriteBytes = 1024, requestSize = 2048, responseFactor = 16) | |
# Processing profiler results: perf | |
Result: 2350805.069 ±(99.9%) 107295.129 ops/s [Average] | |
Statistics: (min, avg, max) = (1993162.949, 2350805.069, 2695308.060), stdev = 143235.928 | |
Confidence interval (99.9%): [2243509.940, 2458100.198] | |
Perf stats: | |
-------------------------------------------------- | |
821033.377169 task-clock (msec) # 2.050 CPUs utilized | |
16,740,658 context-switches # 0.020 M/sec | |
5,127 cpu-migrations # 0.006 K/sec | |
98,530 page-faults # 0.120 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.531991591 seconds time elapsed | |
825842.318111 task-clock (msec) # 2.062 CPUs utilized | |
16,006,434 context-switches # 0.019 M/sec | |
5,414 cpu-migrations # 0.007 K/sec | |
94,712 page-faults # 0.115 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.533662925 seconds time elapsed | |
839180.673373 task-clock (msec) # 2.095 CPUs utilized | |
16,387,763 context-switches # 0.020 M/sec | |
5,583 cpu-migrations # 0.007 K/sec | |
93,880 page-faults # 0.112 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.520185439 seconds time elapsed | |
838679.357467 task-clock (msec) # 2.094 CPUs utilized | |
15,307,926 context-switches # 0.018 M/sec | |
4,892 cpu-migrations # 0.006 K/sec | |
88,592 page-faults # 0.106 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.528152998 seconds time elapsed | |
824403.205642 task-clock (msec) # 2.058 CPUs utilized | |
15,752,025 context-switches # 0.019 M/sec | |
4,187 cpu-migrations # 0.005 K/sec | |
82,141 page-faults # 0.100 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.531606160 seconds time elapsed | |
Result "@gc.count.profiled": 58.000 counts [Sum] | |
Result "@gc.count.total": 16.000 counts [Maximum] | |
Result "@gc.time.profiled": 537.000 ms [Sum] | |
Result "@gc.time.total": 223.000 ms [Maximum] | |
Result "@rt.safepointSyncTime": 4340.723 ms [Maximum] | |
Result "@rt.safepointTime": 9317.420 ms [Maximum] | |
Result "@rt.safepoints": 37808.000 counts [Maximum] | |
Result "@rt.sync.contendedLockAttempts": 73739149.000 locks [Maximum] | |
Result "@rt.sync.fatMonitors": 640.000 monitors [Maximum] | |
Result "@rt.sync.futileWakeups": 27443882.000 counts [Maximum] | |
Result "@rt.sync.monitorDeflations": 126.000 monitors [Maximum] | |
Result "@rt.sync.monitorInflations": 130.000 monitors [Maximum] | |
Result "@rt.sync.notifications": 75.000 counts [Maximum] | |
Result "@rt.sync.parks": 35170174.000 counts [Maximum] | |
Stack profiler: | |
....[Thread state distributions].................................................................... | |
71.8% TIMED_WAITING | |
20.1% RUNNABLE | |
8.2% BLOCKED | |
....[Thread state: TIMED_WAITING]................................................................... | |
71.8% 100.0% java.lang.Thread.sleep | |
....[Thread state: RUNNABLE]........................................................................ | |
14.1% 70.1% okio.SegmentPool.recycle | |
5.8% 29.1% okio.SegmentPool.take | |
0.1% 0.7% java.lang.Thread.sleep | |
0.0% 0.1% okio.Buffer.write | |
0.0% 0.0% okio.Buffer.skip | |
0.0% 0.0% okio.Segment.<init> | |
0.0% 0.0% com.squareup.okio.benchmarks.BufferPerformanceBench$BufferState.writeChunked | |
0.0% 0.0% okio.Buffer.clear | |
0.0% 0.0% com.squareup.okio.benchmarks.generated.BufferPerformanceBench_cold.thinkReadHot_thrpt_jmhStub | |
0.0% 0.0% org.openjdk.jmh.runner.InfraControlL2.announceWarmdownReady | |
....[Thread state: BLOCKED]......................................................................... | |
5.2% 63.5% okio.SegmentPool.recycle | |
3.0% 36.5% okio.SegmentPool.take | |
Result "thinkReadHot": 2219022.603 ±(99.9%) 105973.069 ops/s [Average] | |
Statistics: (min, avg, max) = (1856888.625, 2219022.603, 2553000.469), stdev = 141471.016 | |
Confidence interval (99.9%): [2113049.533, 2324995.672] | |
Result "thinkWriteCold": 131782.466 ±(99.9%) 5057.317 ops/s [Average] | |
Statistics: (min, avg, max) = (121071.338, 131782.466, 147864.105), stdev = 6751.374 | |
Confidence interval (99.9%): [126725.149, 136839.784] | |
# Run complete. Total time: 00:33:22 | |
Benchmark (maxReadBytes) (maxThinkMicros) (maxWriteBytes) (requestSize) (responseFactor) Mode Samples Score Error Units | |
c.s.o.b.BufferPerformanceBench.cold 1024 1000 1024 2048 16 thrpt 25 2350805.069 ± 107295.129 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:@cpi 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN CPI | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.profiled 1024 1000 1024 2048 16 thrpt 25 58.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.total 1024 1000 1024 2048 16 thrpt 25 16.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.profiled 1024 1000 1024 2048 16 thrpt 25 537.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.total 1024 1000 1024 2048 16 thrpt 25 223.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointSyncTime 1024 1000 1024 2048 16 thrpt 25 4340.723 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointTime 1024 1000 1024 2048 16 thrpt 25 9317.420 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepoints 1024 1000 1024 2048 16 thrpt 25 37808.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.contendedLockAttempts 1024 1000 1024 2048 16 thrpt 25 73739149.000 ± NaN locks | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.fatMonitors 1024 1000 1024 2048 16 thrpt 25 640.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.futileWakeups 1024 1000 1024 2048 16 thrpt 25 27443882.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorDeflations 1024 1000 1024 2048 16 thrpt 25 126.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorInflations 1024 1000 1024 2048 16 thrpt 25 130.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.notifications 1024 1000 1024 2048 16 thrpt 25 75.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.parks 1024 1000 1024 2048 16 thrpt 25 35170174.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@stack 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN --- | |
c.s.o.b.BufferPerformanceBench.cold:thinkReadHot 1024 1000 1024 2048 16 thrpt 25 2219022.603 ± 105973.069 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:thinkWriteCold 1024 1000 1024 2048 16 thrpt 25 131782.466 ± 5057.317 ops/s | |
Benchmark result is saved to cold-t12.csv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# JMH 1.4.1 (released 10 days ago) | |
# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java | |
# VM options: <none> | |
# Warmup: 10 iterations, 10 s each | |
# Measurement: 5 iterations, 60 s each | |
# Timeout: 10 min per iteration | |
# Threads: 16 threads, will synchronize iterations | |
# Benchmark mode: Throughput, ops/time | |
# Benchmark: com.squareup.okio.benchmarks.BufferPerformanceBench.cold | |
# Parameters: (maxReadBytes = 1024, maxThinkMicros = 1000, maxWriteBytes = 1024, requestSize = 2048, responseFactor = 16) | |
# Processing profiler results: perf | |
Result: 2086796.772 ±(99.9%) 106143.116 ops/s [Average] | |
Statistics: (min, avg, max) = (1895213.041, 2086796.772, 2380567.221), stdev = 141698.023 | |
Confidence interval (99.9%): [1980653.656, 2192939.888] | |
Perf stats: | |
-------------------------------------------------- | |
857748.717395 task-clock (msec) # 2.142 CPUs utilized | |
20,858,282 context-switches # 0.024 M/sec | |
29,769 cpu-migrations # 0.035 K/sec | |
112,644 page-faults # 0.131 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.536008245 seconds time elapsed | |
861752.951202 task-clock (msec) # 2.152 CPUs utilized | |
19,710,806 context-switches # 0.023 M/sec | |
20,318 cpu-migrations # 0.024 K/sec | |
93,754 page-faults # 0.109 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.528278547 seconds time elapsed | |
872010.835309 task-clock (msec) # 2.177 CPUs utilized | |
20,290,418 context-switches # 0.023 M/sec | |
23,899 cpu-migrations # 0.027 K/sec | |
91,497 page-faults # 0.105 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.529323329 seconds time elapsed | |
907069.146230 task-clock (msec) # 2.265 CPUs utilized | |
20,352,439 context-switches # 0.022 M/sec | |
16,118 cpu-migrations # 0.018 K/sec | |
85,021 page-faults # 0.094 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.519868953 seconds time elapsed | |
870896.658605 task-clock (msec) # 2.174 CPUs utilized | |
20,675,171 context-switches # 0.024 M/sec | |
23,044 cpu-migrations # 0.026 K/sec | |
105,530 page-faults # 0.121 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.520527545 seconds time elapsed | |
Result "@gc.count.profiled": 180.000 counts [Sum] | |
Result "@gc.count.total": 49.000 counts [Maximum] | |
Result "@gc.time.profiled": 2600.000 ms [Sum] | |
Result "@gc.time.total": 719.000 ms [Maximum] | |
Result "@rt.safepointSyncTime": 5009.781 ms [Maximum] | |
Result "@rt.safepointTime": 11516.480 ms [Maximum] | |
Result "@rt.safepoints": 37436.000 counts [Maximum] | |
Result "@rt.sync.contendedLockAttempts": 67808882.000 locks [Maximum] | |
Result "@rt.sync.fatMonitors": 768.000 monitors [Maximum] | |
Result "@rt.sync.futileWakeups": 20422707.000 counts [Maximum] | |
Result "@rt.sync.monitorDeflations": 126.000 monitors [Maximum] | |
Result "@rt.sync.monitorInflations": 130.000 monitors [Maximum] | |
Result "@rt.sync.notifications": 87.000 counts [Maximum] | |
Result "@rt.sync.parks": 26764390.000 counts [Maximum] | |
Stack profiler: | |
....[Thread state distributions].................................................................... | |
69.4% TIMED_WAITING | |
16.2% RUNNABLE | |
14.4% BLOCKED | |
....[Thread state: TIMED_WAITING]................................................................... | |
69.4% 100.0% java.lang.Thread.sleep | |
....[Thread state: RUNNABLE]........................................................................ | |
9.6% 59.4% okio.SegmentPool.recycle | |
6.4% 39.5% okio.SegmentPool.take | |
0.2% 1.0% java.lang.Thread.sleep | |
0.0% 0.0% okio.Segment.<init> | |
0.0% 0.0% okio.Buffer.write | |
0.0% 0.0% okio.Buffer.skip | |
0.0% 0.0% java.lang.Thread.interrupted | |
0.0% 0.0% sun.misc.Unsafe.compareAndSwapInt | |
0.0% 0.0% java.lang.Thread.isInterrupted | |
....[Thread state: BLOCKED]......................................................................... | |
7.5% 51.9% okio.SegmentPool.recycle | |
6.9% 48.1% okio.SegmentPool.take | |
Result "thinkReadHot": 1957720.771 ±(99.9%) 103465.233 ops/s [Average] | |
Statistics: (min, avg, max) = (1758129.192, 1957720.771, 2235091.290), stdev = 138123.125 | |
Confidence interval (99.9%): [1854255.539, 2061186.004] | |
Result "thinkWriteCold": 129076.001 ±(99.9%) 7048.689 ops/s [Average] | |
Statistics: (min, avg, max) = (113998.043, 129076.001, 153244.175), stdev = 9409.798 | |
Confidence interval (99.9%): [122027.312, 136124.689] | |
# Run complete. Total time: 00:33:22 | |
Benchmark (maxReadBytes) (maxThinkMicros) (maxWriteBytes) (requestSize) (responseFactor) Mode Samples Score Error Units | |
c.s.o.b.BufferPerformanceBench.cold 1024 1000 1024 2048 16 thrpt 25 2086796.772 ± 106143.116 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:@cpi 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN CPI | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.profiled 1024 1000 1024 2048 16 thrpt 25 180.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.total 1024 1000 1024 2048 16 thrpt 25 49.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.profiled 1024 1000 1024 2048 16 thrpt 25 2600.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.total 1024 1000 1024 2048 16 thrpt 25 719.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointSyncTime 1024 1000 1024 2048 16 thrpt 25 5009.781 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointTime 1024 1000 1024 2048 16 thrpt 25 11516.480 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepoints 1024 1000 1024 2048 16 thrpt 25 37436.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.contendedLockAttempts 1024 1000 1024 2048 16 thrpt 25 67808882.000 ± NaN locks | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.fatMonitors 1024 1000 1024 2048 16 thrpt 25 768.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.futileWakeups 1024 1000 1024 2048 16 thrpt 25 20422707.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorDeflations 1024 1000 1024 2048 16 thrpt 25 126.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorInflations 1024 1000 1024 2048 16 thrpt 25 130.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.notifications 1024 1000 1024 2048 16 thrpt 25 87.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.parks 1024 1000 1024 2048 16 thrpt 25 26764390.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@stack 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN --- | |
c.s.o.b.BufferPerformanceBench.cold:thinkReadHot 1024 1000 1024 2048 16 thrpt 25 1957720.771 ± 103465.233 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:thinkWriteCold 1024 1000 1024 2048 16 thrpt 25 129076.001 ± 7048.689 ops/s | |
Benchmark result is saved to cold-t16.csv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# JMH 1.4.1 (released 10 days ago) | |
# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java | |
# VM options: <none> | |
# Warmup: 10 iterations, 10 s each | |
# Measurement: 5 iterations, 60 s each | |
# Timeout: 10 min per iteration | |
# Threads: 32 threads, will synchronize iterations | |
# Benchmark mode: Throughput, ops/time | |
# Benchmark: com.squareup.okio.benchmarks.BufferPerformanceBench.cold | |
# Parameters: (maxReadBytes = 1024, maxThinkMicros = 1000, maxWriteBytes = 1024, requestSize = 2048, responseFactor = 16) | |
# Processing profiler results: perf | |
Result: 1959000.309 ±(99.9%) 60041.227 ops/s [Average] | |
Statistics: (min, avg, max) = (1778315.414, 1959000.309, 2119005.392), stdev = 80153.321 | |
Confidence interval (99.9%): [1898959.081, 2019041.536] | |
Perf stats: | |
-------------------------------------------------- | |
872440.811814 task-clock (msec) # 2.178 CPUs utilized | |
21,822,385 context-switches # 0.025 M/sec | |
443,843 cpu-migrations # 0.509 K/sec | |
166,390 page-faults # 0.191 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.653257556 seconds time elapsed | |
853732.504692 task-clock (msec) # 2.131 CPUs utilized | |
21,169,779 context-switches # 0.025 M/sec | |
384,912 cpu-migrations # 0.451 K/sec | |
146,698 page-faults # 0.172 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.580599471 seconds time elapsed | |
865657.184753 task-clock (msec) # 2.161 CPUs utilized | |
21,314,686 context-switches # 0.025 M/sec | |
356,212 cpu-migrations # 0.411 K/sec | |
137,700 page-faults # 0.159 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.571569802 seconds time elapsed | |
866388.999239 task-clock (msec) # 2.163 CPUs utilized | |
22,223,692 context-switches # 0.026 M/sec | |
376,874 cpu-migrations # 0.435 K/sec | |
123,805 page-faults # 0.143 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.597140599 seconds time elapsed | |
907498.148347 task-clock (msec) # 2.266 CPUs utilized | |
21,521,899 context-switches # 0.024 M/sec | |
396,652 cpu-migrations # 0.437 K/sec | |
165,308 page-faults # 0.182 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.566170542 seconds time elapsed | |
Result "@gc.count.profiled": 759.000 counts [Sum] | |
Result "@gc.count.total": 213.000 counts [Maximum] | |
Result "@gc.time.profiled": 8434.000 ms [Sum] | |
Result "@gc.time.total": 2219.000 ms [Maximum] | |
Result "@rt.safepointSyncTime": 7206.748 ms [Maximum] | |
Result "@rt.safepointTime": 20270.508 ms [Maximum] | |
Result "@rt.safepoints": 36044.000 counts [Maximum] | |
Result "@rt.sync.contendedLockAttempts": 61431210.000 locks [Maximum] | |
Result "@rt.sync.fatMonitors": 896.000 monitors [Maximum] | |
Result "@rt.sync.futileWakeups": 16450251.000 counts [Maximum] | |
Result "@rt.sync.monitorDeflations": 126.000 monitors [Maximum] | |
Result "@rt.sync.monitorInflations": 130.000 monitors [Maximum] | |
Result "@rt.sync.notifications": 128.000 counts [Maximum] | |
Result "@rt.sync.parks": 23728889.000 counts [Maximum] | |
Stack profiler: | |
....[Thread state distributions].................................................................... | |
63.8% TIMED_WAITING | |
28.0% BLOCKED | |
8.2% RUNNABLE | |
....[Thread state: TIMED_WAITING]................................................................... | |
63.8% 100.0% java.lang.Thread.sleep | |
....[Thread state: BLOCKED]......................................................................... | |
14.2% 51.0% okio.SegmentPool.take | |
13.7% 49.0% okio.SegmentPool.recycle | |
0.0% 0.0% okio.Segment.<init> | |
....[Thread state: RUNNABLE]........................................................................ | |
4.5% 55.2% okio.SegmentPool.recycle | |
3.5% 42.1% okio.SegmentPool.take | |
0.2% 2.4% java.lang.Thread.sleep | |
0.0% 0.2% okio.Segment.<init> | |
0.0% 0.0% okio.Buffer.write | |
0.0% 0.0% okio.Buffer.skip | |
0.0% 0.0% java.lang.Thread.isInterrupted | |
0.0% 0.0% sun.misc.Unsafe.park | |
0.0% 0.0% com.squareup.okio.benchmarks.generated.BufferPerformanceBench_cold.thinkReadHot_thrpt_jmhStub | |
Result "thinkReadHot": 1851920.691 ±(99.9%) 59460.097 ops/s [Average] | |
Statistics: (min, avg, max) = (1667659.577, 1851920.691, 2008910.413), stdev = 79377.528 | |
Confidence interval (99.9%): [1792460.594, 1911380.788] | |
Result "thinkWriteCold": 107079.618 ±(99.9%) 2000.500 ops/s [Average] | |
Statistics: (min, avg, max) = (102944.161, 107079.618, 112956.938), stdev = 2670.610 | |
Confidence interval (99.9%): [105079.118, 109080.118] | |
# Run complete. Total time: 00:33:23 | |
Benchmark (maxReadBytes) (maxThinkMicros) (maxWriteBytes) (requestSize) (responseFactor) Mode Samples Score Error Units | |
c.s.o.b.BufferPerformanceBench.cold 1024 1000 1024 2048 16 thrpt 25 1959000.309 ± 60041.227 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:@cpi 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN CPI | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.profiled 1024 1000 1024 2048 16 thrpt 25 759.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.total 1024 1000 1024 2048 16 thrpt 25 213.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.profiled 1024 1000 1024 2048 16 thrpt 25 8434.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.total 1024 1000 1024 2048 16 thrpt 25 2219.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointSyncTime 1024 1000 1024 2048 16 thrpt 25 7206.748 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointTime 1024 1000 1024 2048 16 thrpt 25 20270.508 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepoints 1024 1000 1024 2048 16 thrpt 25 36044.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.contendedLockAttempts 1024 1000 1024 2048 16 thrpt 25 61431210.000 ± NaN locks | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.fatMonitors 1024 1000 1024 2048 16 thrpt 25 896.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.futileWakeups 1024 1000 1024 2048 16 thrpt 25 16450251.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorDeflations 1024 1000 1024 2048 16 thrpt 25 126.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorInflations 1024 1000 1024 2048 16 thrpt 25 130.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.notifications 1024 1000 1024 2048 16 thrpt 25 128.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.parks 1024 1000 1024 2048 16 thrpt 25 23728889.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@stack 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN --- | |
c.s.o.b.BufferPerformanceBench.cold:thinkReadHot 1024 1000 1024 2048 16 thrpt 25 1851920.691 ± 59460.097 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:thinkWriteCold 1024 1000 1024 2048 16 thrpt 25 107079.618 ± 2000.500 ops/s | |
Benchmark result is saved to cold-t32.csv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# JMH 1.4.1 (released 10 days ago) | |
# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java | |
# VM options: <none> | |
# Warmup: 10 iterations, 10 s each | |
# Measurement: 5 iterations, 60 s each | |
# Timeout: 10 min per iteration | |
# Threads: 8 threads, will synchronize iterations | |
# Benchmark mode: Throughput, ops/time | |
# Benchmark: com.squareup.okio.benchmarks.BufferPerformanceBench.cold | |
# Parameters: (maxReadBytes = 1024, maxThinkMicros = 1000, maxWriteBytes = 1024, requestSize = 2048, responseFactor = 16) | |
# Processing profiler results: perf | |
Result: 2490356.719 ±(99.9%) 342213.413 ops/s [Average] | |
Statistics: (min, avg, max) = (1889360.419, 2490356.719, 3756462.032), stdev = 456845.116 | |
Confidence interval (99.9%): [2148143.306, 2832570.132] | |
Perf stats: | |
-------------------------------------------------- | |
659660.022212 task-clock (msec) # 1.647 CPUs utilized | |
4,179,110 context-switches # 0.006 M/sec | |
2,220 cpu-migrations # 0.003 K/sec | |
72,417 page-faults # 0.110 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.520468992 seconds time elapsed | |
656665.210952 task-clock (msec) # 1.640 CPUs utilized | |
4,381,596 context-switches # 0.007 M/sec | |
1,834 cpu-migrations # 0.003 K/sec | |
74,288 page-faults # 0.113 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.516947264 seconds time elapsed | |
658639.457273 task-clock (msec) # 1.645 CPUs utilized | |
4,316,557 context-switches # 0.007 M/sec | |
1,278 cpu-migrations # 0.002 K/sec | |
56,854 page-faults # 0.086 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.503966453 seconds time elapsed | |
657402.332601 task-clock (msec) # 1.641 CPUs utilized | |
4,334,529 context-switches # 0.007 M/sec | |
1,317 cpu-migrations # 0.002 K/sec | |
91,403 page-faults # 0.139 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.510074092 seconds time elapsed | |
658584.804861 task-clock (msec) # 1.644 CPUs utilized | |
4,163,652 context-switches # 0.006 M/sec | |
971 cpu-migrations # 0.001 K/sec | |
57,471 page-faults # 0.087 K/sec | |
<not supported> cycles | |
<not supported> stalled-cycles-frontend | |
<not supported> stalled-cycles-backend | |
<not supported> instructions | |
<not supported> branches | |
<not supported> branch-misses | |
<not supported> L1-dcache-loads | |
<not supported> L1-dcache-load-misses | |
<not supported> LLC-loads | |
<not supported> LLC-load-misses | |
<not supported> L1-icache-loads | |
<not supported> L1-icache-load-misses | |
<not supported> dTLB-loads | |
<not supported> dTLB-load-misses | |
<not supported> iTLB-loads | |
<not supported> iTLB-load-misses | |
<not supported> L1-dcache-prefetches | |
<not supported> L1-dcache-prefetch-misses | |
400.514355743 seconds time elapsed | |
Result "@gc.count.profiled": 21.000 counts [Sum] | |
Result "@gc.count.total": 6.000 counts [Maximum] | |
Result "@gc.time.profiled": 135.000 ms [Sum] | |
Result "@gc.time.total": 50.000 ms [Maximum] | |
Result "@rt.safepointSyncTime": 3564.745 ms [Maximum] | |
Result "@rt.safepointTime": 7213.499 ms [Maximum] | |
Result "@rt.safepoints": 38212.000 counts [Maximum] | |
Result "@rt.sync.contendedLockAttempts": 24812672.000 locks [Maximum] | |
Result "@rt.sync.fatMonitors": 384.000 monitors [Maximum] | |
Result "@rt.sync.futileWakeups": 4178366.000 counts [Maximum] | |
Result "@rt.sync.monitorDeflations": 126.000 monitors [Maximum] | |
Result "@rt.sync.monitorInflations": 130.000 monitors [Maximum] | |
Result "@rt.sync.notifications": 62.000 counts [Maximum] | |
Result "@rt.sync.parks": 6734092.000 counts [Maximum] | |
Stack profiler: | |
....[Thread state distributions].................................................................... | |
72.7% TIMED_WAITING | |
26.0% RUNNABLE | |
1.3% BLOCKED | |
....[Thread state: TIMED_WAITING]................................................................... | |
72.7% 100.0% java.lang.Thread.sleep | |
....[Thread state: RUNNABLE]........................................................................ | |
21.4% 82.4% okio.SegmentPool.recycle | |
4.1% 15.6% okio.SegmentPool.take | |
0.3% 1.2% okio.Buffer.write | |
0.1% 0.5% java.lang.Thread.sleep | |
0.1% 0.3% okio.Buffer.skip | |
0.0% 0.0% com.squareup.okio.benchmarks.BufferPerformanceBench$BufferState.writeChunked | |
0.0% 0.0% com.squareup.okio.benchmarks.BufferPerformanceBench$BufferState.receive | |
0.0% 0.0% com.squareup.okio.benchmarks.generated.BufferPerformanceBench_cold.thinkReadHot_thrpt_jmhStub | |
0.0% 0.0% com.squareup.okio.benchmarks.BufferPerformanceBench.thinkReadHot | |
0.0% 0.0% org.openjdk.jmh.runner.InfraControl.announceWarmdownReady | |
....[Thread state: BLOCKED]......................................................................... | |
0.8% 59.7% okio.SegmentPool.take | |
0.5% 40.3% okio.SegmentPool.recycle | |
Result "thinkReadHot": 2378197.598 ±(99.9%) 338140.078 ops/s [Average] | |
Statistics: (min, avg, max) = (1783250.263, 2378197.598, 3628452.365), stdev = 451407.330 | |
Confidence interval (99.9%): [2040057.519, 2716337.676] | |
Result "thinkWriteCold": 112159.121 ±(99.9%) 6788.694 ops/s [Average] | |
Statistics: (min, avg, max) = (99871.178, 112159.121, 131972.047), stdev = 9062.712 | |
Confidence interval (99.9%): [105370.428, 118947.815] | |
# Run complete. Total time: 00:33:22 | |
Benchmark (maxReadBytes) (maxThinkMicros) (maxWriteBytes) (requestSize) (responseFactor) Mode Samples Score Error Units | |
c.s.o.b.BufferPerformanceBench.cold 1024 1000 1024 2048 16 thrpt 25 2490356.719 ± 342213.413 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:@cpi 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN CPI | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.profiled 1024 1000 1024 2048 16 thrpt 25 21.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.count.total 1024 1000 1024 2048 16 thrpt 25 6.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.profiled 1024 1000 1024 2048 16 thrpt 25 135.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@gc.time.total 1024 1000 1024 2048 16 thrpt 25 50.000 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointSyncTime 1024 1000 1024 2048 16 thrpt 25 3564.745 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepointTime 1024 1000 1024 2048 16 thrpt 25 7213.499 ± NaN ms | |
c.s.o.b.BufferPerformanceBench.cold:@rt.safepoints 1024 1000 1024 2048 16 thrpt 25 38212.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.contendedLockAttempts 1024 1000 1024 2048 16 thrpt 25 24812672.000 ± NaN locks | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.fatMonitors 1024 1000 1024 2048 16 thrpt 25 384.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.futileWakeups 1024 1000 1024 2048 16 thrpt 25 4178366.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorDeflations 1024 1000 1024 2048 16 thrpt 25 126.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.monitorInflations 1024 1000 1024 2048 16 thrpt 25 130.000 ± NaN monitors | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.notifications 1024 1000 1024 2048 16 thrpt 25 62.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@rt.sync.parks 1024 1000 1024 2048 16 thrpt 25 6734092.000 ± NaN counts | |
c.s.o.b.BufferPerformanceBench.cold:@stack 1024 1000 1024 2048 16 thrpt 1 NaN ± NaN --- | |
c.s.o.b.BufferPerformanceBench.cold:thinkReadHot 1024 1000 1024 2048 16 thrpt 25 2378197.598 ± 338140.078 ops/s | |
c.s.o.b.BufferPerformanceBench.cold:thinkWriteCold 1024 1000 1024 2048 16 thrpt 25 112159.121 ± 6788.694 ops/s | |
Benchmark result is saved to cold-t8.csv |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment