{"id":18291054,"url":"https://github.com/hakdogan/performance-measurements","last_synced_at":"2025-06-27T22:39:15.943Z","repository":{"id":252551762,"uuid":"840734684","full_name":"hakdogan/performance-measurements","owner":"hakdogan","description":"Performance measurements to Java Garbage Collector","archived":false,"fork":false,"pushed_at":"2024-08-11T18:25:05.000Z","size":2068,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T13:53:19.093Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hakdogan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-10T14:23:05.000Z","updated_at":"2024-08-11T18:25:09.000Z","dependencies_parsed_at":"2024-08-10T17:54:21.054Z","dependency_job_id":null,"html_url":"https://github.com/hakdogan/performance-measurements","commit_stats":null,"previous_names":["hakdogan/performance-measurements"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hakdogan%2Fperformance-measurements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hakdogan%2Fperformance-measurements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hakdogan%2Fperformance-measurements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hakdogan%2Fperformance-measurements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hakdogan","download_url":"https://codeload.github.com/hakdogan/performance-measurements/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999326,"owners_count":21030950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T14:13:04.229Z","updated_at":"2025-04-09T07:44:29.229Z","avatar_url":"https://github.com/hakdogan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Performance Measurements\n\nJMH is a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM.\n\nThis code repository demonstrates how to measure the performance of different garbage collectors using JMH. \n\n\n## To generate executable jar file\n\n```shell\nsh javaBuild.sh\n```\n\n## To generate Docker image\n\n```shell\nsh dockerBuild.sh\n```\n\n## To execution\n\n```shell\nsh execute.sh\n```\n\n```shell\n\n#The third parameter of the script specifies the garbage collection algorithm; \n# if no value is provided, the G1GC garbage collector is used.\n\nsh execute.sh 2 8192m\n#CPU: 2 RAM: 8GB Garbage Collector: G1GC\n \nStarting performance measurements to Java Garbage Collector\n-XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=2 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=134217728 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=2147483648 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC \n# JMH version: 1.35\n# VM version: JDK 17-ea, OpenJDK 64-Bit Server VM, 17-ea+14\n# VM invoker: /opt/openjdk-17/bin/java\n# VM options: -XX:+UseG1GC -XX:+PrintCommandLineFlags\n# Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)\n# Warmup: 5 iterations, 1 s each\n# Measurement: 5 iterations, 1 s each\n# Timeout: 10 min per iteration\n# Threads: 50 threads, will synchronize iterations\n# Benchmark mode: Average time, time/op\n# Benchmark: org.jugistanbul.StreamBenchmark.measurement\n\n...\nResult \"org.jugistanbul.StreamBenchmark.measurement\":\n  1739932886.556 ±(99.9%) 109225730.527 ns/op [Average]\n  (min, avg, max) = (1497378210.040, 1739932886.556, 1902763585.180), stdev = 102169816.112\n  CI (99.9%): [1630707156.029, 1849158617.083] (assumes normal distribution)\n\n\n# Run complete. Total time: 00:03:36\n\nREMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on\nwhy the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial\nexperiments, perform baseline and negative tests that provide experimental control, make sure\nthe benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.\nDo not assume the numbers tell you what you want them to tell.\n\nBenchmark                    Mode  Cnt           Score           Error  Units\nStreamBenchmark.measurement  avgt   15  1739932886.556 ± 109225730.527  ns/op\n\n...\n\nsh execute.sh 2 8192m -XX:+UseZGC\n#CPU: 2 RAM: 8GB Garbage Collector: ZGC\n\nStarting performance measurements to Java Garbage Collector\n-XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:-UseCompressedOops -XX:+UseZGC \n# JMH version: 1.35\n# VM version: JDK 17-ea, OpenJDK 64-Bit Server VM, 17-ea+14\n# VM invoker: /opt/openjdk-17/bin/java\n# VM options: -XX:+UseZGC -XX:+PrintCommandLineFlags\n# Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)\n# Warmup: 5 iterations, 1 s each\n# Measurement: 5 iterations, 1 s each\n# Timeout: 10 min per iteration\n# Threads: 50 threads, will synchronize iterations\n# Benchmark mode: Average time, time/op\n# Benchmark: org.jugistanbul.StreamBenchmark.measurement\n\n...\n\nResult \"org.jugistanbul.StreamBenchmark.measurement\":\n  1120847190.661 ±(99.9%) 112668974.602 ns/op [Average]\n  (min, avg, max) = (983403333.550, 1120847190.661, 1306016609.643), stdev = 105390628.756\n  CI (99.9%): [1008178216.059, 1233516165.263] (assumes normal distribution)\n\n\n# Run complete. Total time: 00:02:04\n\nREMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on\nwhy the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial\nexperiments, perform baseline and negative tests that provide experimental control, make sure\nthe benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.\nDo not assume the numbers tell you what you want them to tell.\n\nBenchmark                    Mode  Cnt           Score           Error  Units\nStreamBenchmark.measurement  avgt   15  1120847190.661 ± 112668974.602  ns/op\n\n...\n\nsh execute.sh 1 8192m -XX:+UseZGC\n#CPU: 1 RAM: 8GB Garbage Collector: ZGC\n\nStarting performance measurements to Java Garbage Collector\n-XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:-UseCompressedOops -XX:+UseZGC \n# JMH version: 1.35\n# VM version: JDK 17-ea, OpenJDK 64-Bit Server VM, 17-ea+14\n# VM invoker: /opt/openjdk-17/bin/java\n# VM options: -XX:+UseZGC -XX:+PrintCommandLineFlags\n# Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)\n# Warmup: 5 iterations, 1 s each\n# Measurement: 5 iterations, 1 s each\n# Timeout: 10 min per iteration\n# Threads: 50 threads, will synchronize iterations\n# Benchmark mode: Average time, time/op\n# Benchmark: org.jugistanbul.StreamBenchmark.measurement\n\n...\n\nResult \"org.jugistanbul.StreamBenchmark.measurement\":\n  1567409847.903 ±(99.9%) 195128400.805 ns/op [Average]\n  (min, avg, max) = (1297439204.800, 1567409847.903, 1973717241.460), stdev = 182523227.195\n  CI (99.9%): [1372281447.097, 1762538248.708] (assumes normal distribution)\n\n\n# Run complete. Total time: 00:03:04\n\nREMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on\nwhy the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial\nexperiments, perform baseline and negative tests that provide experimental control, make sure\nthe benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.\nDo not assume the numbers tell you what you want them to tell.\n\nBenchmark                    Mode  Cnt           Score           Error  Units\nStreamBenchmark.measurement  avgt   15  1567409847.903 ± 195128400.805  ns/op\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhakdogan%2Fperformance-measurements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhakdogan%2Fperformance-measurements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhakdogan%2Fperformance-measurements/lists"}