On Mon, 10 Jul 2023 16:07:44 GMT, John Jiang <jji...@openjdk.org> wrote:
> Not review this PR, but just raise a question. Should a JMH test, at least in > JDK repo, always uses `@State(Scope.Thread)`, even though it uses only one > thread? > > I just looked through those JMH tests, and found all of them, like the > bellows, don't specify the number of threads via `@Threads`. > > ``` > org/openjdk/bench/java/io/DataOutputStreamTest.java > org/openjdk/bench/java/lang/ArrayCopyObject.java > ``` > > I suppose the default number of threads is 1. Maybe the default value will be > overridden via the commands when running these JMH tests in bulk (?) Not always but state should be set to Thread level when the class variables are shared by multiple threads, also the variable scope should be set to non static. While running these benchmarks in multithreaded way, observed scaling issues as variables are shared but scope is set to benchmark level. ------------- PR Comment: https://git.openjdk.org/jdk/pull/14746#issuecomment-1630347091