steveloughran commented on code in PR #15623: URL: https://github.com/apache/iceberg/pull/15623#discussion_r2933922186
########## site/docs/benchmarks.md: ########## @@ -20,111 +20,198 @@ title: "Benchmarks" ## Available Benchmarks and how to run them -Benchmarks are located under `<project-name>/jmh`. It is generally favorable to only run the tests of interest rather than running all available benchmarks. -Also note that JMH benchmarks run within the same JVM as the system-under-test, so results might vary between runs. +Benchmarks are located under `<module>/src/jmh`. It is generally better to run only the benchmarks you are investigating instead of the full suite. +Also note that JMH benchmarks run in the same JVM as the system under test, so results may vary between runs. ## Running Benchmarks on GitHub -It is possible to run one or more Benchmarks via the **JMH Benchmarks** GH action on your own fork of the Iceberg repo. This GH action takes the following inputs: -* The repository name where those benchmarks should be run against, such as `apache/iceberg` or `<user>/iceberg` -* The branch name to run benchmarks against, such as `main` or `my-cool-feature-branch` -* A list of comma-separated double-quoted Benchmark names, such as `"IcebergSourceFlatParquetDataReadBenchmark", "IcebergSourceFlatParquetDataFilterBenchmark", "IcebergSourceNestedListParquetDataWriteBenchmark"` +It is possible to run one or more benchmarks via the **JMH Benchmarks** GitHub Actions workflow on your own fork of the Iceberg repository. This workflow takes the following inputs: + +* The repository name to run against, such as `apache/iceberg` or `<user>/iceberg` +* The branch name to benchmark, such as `main` or `my-feature-branch` +* A comma-separated list of double-quoted benchmark names, such as `"IcebergSourceFlatParquetDataReadBenchmark", "IcebergSourceFlatParquetDataFilterBenchmark", "IcebergSourceNestedListParquetDataWriteBenchmark"` Benchmark results will be uploaded once **all** benchmarks are done. -It is worth noting that the GH runners have limited resources so the benchmark results should rather be seen as an indicator to guide developers in understanding code changes. -It is likely that there is variability in results across different runs, therefore the benchmark results shouldn't be used to form assumptions around production choices. +GitHub-hosted runners have limited and shared resources, so treat these results as directional signals for understanding code changes rather than as production-grade measurements. ## Running Benchmarks locally -Below are the existing benchmarks shown with the actual commands on how to run them locally. +JMH writes human-readable output to `build/reports/jmh/human-readable-output.txt` and JSON output to `build/reports/jmh/results.json` by default. Override them with `-PjmhOutputPath=<path>` and `-PjmhJsonOutputPath=<path>` if needed. + +The default versions in this repository are: Review Comment: listing this creates one more maintenance point when versions are upgraded...or somewhere where they get out of date. I think it's best to not enumerate. ########## site/docs/benchmarks.md: ########## @@ -20,111 +20,198 @@ title: "Benchmarks" ## Available Benchmarks and how to run them -Benchmarks are located under `<project-name>/jmh`. It is generally favorable to only run the tests of interest rather than running all available benchmarks. -Also note that JMH benchmarks run within the same JVM as the system-under-test, so results might vary between runs. +Benchmarks are located under `<module>/src/jmh`. It is generally better to run only the benchmarks you are investigating instead of the full suite. +Also note that JMH benchmarks run in the same JVM as the system under test, so results may vary between runs. ## Running Benchmarks on GitHub -It is possible to run one or more Benchmarks via the **JMH Benchmarks** GH action on your own fork of the Iceberg repo. This GH action takes the following inputs: -* The repository name where those benchmarks should be run against, such as `apache/iceberg` or `<user>/iceberg` -* The branch name to run benchmarks against, such as `main` or `my-cool-feature-branch` -* A list of comma-separated double-quoted Benchmark names, such as `"IcebergSourceFlatParquetDataReadBenchmark", "IcebergSourceFlatParquetDataFilterBenchmark", "IcebergSourceNestedListParquetDataWriteBenchmark"` +It is possible to run one or more benchmarks via the **JMH Benchmarks** GitHub Actions workflow on your own fork of the Iceberg repository. This workflow takes the following inputs: + +* The repository name to run against, such as `apache/iceberg` or `<user>/iceberg` +* The branch name to benchmark, such as `main` or `my-feature-branch` +* A comma-separated list of double-quoted benchmark names, such as `"IcebergSourceFlatParquetDataReadBenchmark", "IcebergSourceFlatParquetDataFilterBenchmark", "IcebergSourceNestedListParquetDataWriteBenchmark"` Benchmark results will be uploaded once **all** benchmarks are done. -It is worth noting that the GH runners have limited resources so the benchmark results should rather be seen as an indicator to guide developers in understanding code changes. -It is likely that there is variability in results across different runs, therefore the benchmark results shouldn't be used to form assumptions around production choices. +GitHub-hosted runners have limited and shared resources, so treat these results as directional signals for understanding code changes rather than as production-grade measurements. ## Running Benchmarks locally -Below are the existing benchmarks shown with the actual commands on how to run them locally. +JMH writes human-readable output to `build/reports/jmh/human-readable-output.txt` and JSON output to `build/reports/jmh/results.json` by default. Override them with `-PjmhOutputPath=<path>` and `-PjmhJsonOutputPath=<path>` if needed. + Review Comment: probably worth mentioning https://jmh.morethan.io/ as a way to display json results: you can share the results.json with others for them to view. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
