From aleksey.shipilev at oracle.com Mon Jul 1 01:58:10 2013 From: aleksey.shipilev at oracle.com (aleksey.shipilev at oracle.com) Date: Mon, 01 Jul 2013 08:58:10 +0000 Subject: hg: code-tools/jmh: Fixup copyright header. Message-ID: <20130701085811.54D7F486B8@hg.openjdk.java.net> Changeset: 347e6fa7d172 Author: shade Date: 2013-07-01 12:57 +0400 URL: http://hg.openjdk.java.net/code-tools/jmh/rev/347e6fa7d172 Fixup copyright header. ! jmh-core-benchmarks/pom.xml ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/BlackholeBench.java ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/DeadCodeBench.java ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/LevelInvocationBench.java ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/LevelIterationBench.java ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/LevelTrialBench.java ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/NanotimeBench.java ! jmh-core-it/pom.xml ! jmh-core-it/src/test/java/org/openjdk/jmh/it/Fixtures.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/IterationCountAnnTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/IterationCountCmdTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/SingleShotTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/WarmupIterationCountAnnTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/WarmupIterationCountCmdTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/ccontrol/CompilerControlDontInlineTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/ccontrol/CompilerControlExcludeTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/ccontrol/CompilerControlInlineTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/BlackholeApiTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/GroupLabelTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/MultipleBenchmarkStateTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/MultipleExecGroupStateTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/MultipleGroupStateTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/MultipleThreadStateTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/OperationsPerInvocationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/StrictFPClassTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/StrictFPMethodTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/blackhole/BlackholeTypesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/exceptions/BenchmarkBenchExceptionSignaturesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/exceptions/BenchmarkStateExceptionSignaturesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/exceptions/GroupBenchExceptionSignaturesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/exceptions/GroupStateExceptionSignaturesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/exceptions/ThreadBenchExceptionSignaturesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/compile/exceptions/ThreadStateExceptionSignaturesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingBenchmarkBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingBenchmarkBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingBenchmarkBenchTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingBenchmarkStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingBenchmarkStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingForkedBenchTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingForkedSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingForkedTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingGroupBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingGroupBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingGroupBenchTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingGroupStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingGroupStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingThreadBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingThreadBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingThreadBenchTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingThreadStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/FailingThreadStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractBenchmarkBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractBenchmarkBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractBenchmarkStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractBenchmarkStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractGroupBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractGroupBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractGroupStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractGroupStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractSetupBase.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractTearDownBase.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractThreadBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractThreadBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractThreadStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/AbstractThreadStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritBenchmarkBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritBenchmarkBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritBenchmarkStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritBenchmarkStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritGroupBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritGroupBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritGroupStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritGroupStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritThreadBenchSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritThreadBenchTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritThreadStateSetupTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritThreadStateTearDownTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritableBenchmarkSetupState.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritableBenchmarkTearDownState.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritableGroupSetupState.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritableGroupTearDownState.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritableThreadSetupState.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fails/inherit/InheritableThreadTearDownState.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/AnnotatedClassForkedTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/AnnotatedForkedTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/AnnotatedForkedTest2.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedJvmAppendPrependArgsTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedJvmAppendPrependArgsTest2.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedJvmArgsTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedJvmArgsTest2.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedJvmArgsTest3.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_D_D_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_D_F0_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_D_F1_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_D_F_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F0_D_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F0_F0_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F0_F1_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F0_F_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F1_D_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F1_F0_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F1_F1_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F1_F_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F_D_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F_F0_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F_F1_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/override/ForkOverride_F_F_Test.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest0.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest1.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest2.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest3.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest4.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest5.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest6.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest7.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/generated/GeneratedWarmupModeTest8.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/interorder/BenchmarkBenchOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/interorder/BenchmarkStateOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/interorder/GroupBenchOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/interorder/GroupStateOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/interorder/ThreadBenchOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/interorder/ThreadStateOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/BenchmarkBenchSetupOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/BenchmarkBenchTearDownOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/BenchmarkStateSetupOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/BenchmarkStateTearDownOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/GroupBenchSetupOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/GroupBenchTearDownOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/GroupStateSetupOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/GroupStateTearDownOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/ThreadBenchSetupOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/ThreadBenchTearDownOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/ThreadStateSetupOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/intraorder/ThreadStateTearDownOrderTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceBenchmarkStateInvocationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceBenchmarkStateIterationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceBenchmarkStateRunTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceGroupStateInvocationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceGroupStateIterationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceGroupStateRunTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceThreadStateInvocationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceThreadStateIterationTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/races/RaceThreadStateRunTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/BenchmarkBenchSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/BenchmarkStateSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/GroupBenchSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/GroupDefaultBenchSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/GroupDefaultStateSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/GroupStateSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/ThreadBenchSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/sharing/ThreadStateSharingTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/synciter/SyncIterMeasurementOnlyTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/synciter/SyncIterNotOnlyMeasurementTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/BenchmarkBenchSameThreadTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/BenchmarkStateSameThreadTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/GroupBenchSameThreadTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/GroupStateSameThreadTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/ThreadBenchSameThreadTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/ThreadStateSameThreadTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/times/BenchmarkBenchHelperTimesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/times/BenchmarkStateHelperTimesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/times/GroupBenchHelperTimesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/times/GroupStateHelperTimesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/times/ThreadBenchHelperTimesTest.java ! jmh-core-it/src/test/java/org/openjdk/jmh/it/times/ThreadStateHelperTimesTest.java ! jmh-core/pom.xml ! jmh-core/src/main/java/org/openjdk/jmh/ForkedMain.java ! jmh-core/src/main/java/org/openjdk/jmh/Main.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/BenchmarkMode.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/BenchmarkType.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/CompilerControl.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Fork.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/GenerateMicroBenchmark.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Group.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Level.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Measurement.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/MicroBenchmark.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Mode.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/OperationsPerInvocation.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/OutputTimeUnit.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Scope.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Setup.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/State.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/TearDown.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Threads.java ! jmh-core/src/main/java/org/openjdk/jmh/annotations/Warmup.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/BlackHole.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/Control.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/Global.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/Loop.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/AggregateRule.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/Aggregator.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/AverageTimePerOp.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/IterationData.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/OpsPerTimeUnit.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/RawResultPair.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/Result.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/SampleTimePerOp.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/SingleShotTime.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/internal/IterationResult.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/results/internal/RunResult.java ! jmh-core/src/main/java/org/openjdk/jmh/output/OutputFormatFactory.java ! jmh-core/src/main/java/org/openjdk/jmh/output/OutputFormatType.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/AbstractOutputFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/CsvFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/OutputFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/PrettyPrintFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/SilentFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/TextReportFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/internal/BinaryOutputFormatReader.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/internal/BinaryOutputFormatWriter.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/internal/CallInfo.java ! jmh-core/src/main/java/org/openjdk/jmh/output/format/internal/ClassConventions.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/BenchmarkInfo.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/CompilerControlProcessor.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/GenerateMicroBenchmarkProcessor.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/HelperMethodInvocation.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/HelperMethodValidationProcessor.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/HelperType.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/MethodGroup.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/MethodInvocation.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/MicroBenchmarkProcessor.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/StateObject.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/StateObjectHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/AbstractHotspotProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/ClassloaderProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/CompilerProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/EmptyResult.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/GCProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/HotspotClassloadingProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/HotspotCompilationProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/HotspotMemoryProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/HotspotRuntimeProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/HotspotThreadProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/Profiler.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/ProfilerFactory.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/ProfilerResult.java ! jmh-core/src/main/java/org/openjdk/jmh/profile/StackProfiler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/AbstractResourceReader.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/BaseMicroBenchmarkHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/BaseRunner.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/BenchmarkRecord.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/CompilerHints.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/ForkedRunner.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/HarnessThreadFactory.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/LoopMicroBenchmarkHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/MicroBenchmarkHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/MicroBenchmarkHandlers.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/MicroBenchmarkList.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/Runner.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/RunnerException.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/BaseOptions.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/ForkedOptions.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/HarnessOptions.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/BenchmarkModeTypeOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/BooleanOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/ForkOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/ProfilersOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/ThreadCountsOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/ThreadsOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/TimeUnitOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/options/handlers/TimeValueOptionHandler.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/parameters/Defaults.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/parameters/IterationParams.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/parameters/MicroBenchmarkParameters.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/parameters/MicroBenchmarkParametersFactory.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/parameters/ThreadIterationParams.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/parameters/TimeValue.java ! jmh-core/src/main/java/org/openjdk/jmh/util/AnnotationUtils.java ! jmh-core/src/main/java/org/openjdk/jmh/util/ClassUtils.java ! jmh-core/src/main/java/org/openjdk/jmh/util/FileUtils.java ! jmh-core/src/main/java/org/openjdk/jmh/util/InputStreamDrainer.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/BootstrappedStatistics.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/CollectionUtils.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/HashMultimap.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/HashMultiset.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/HashsetMultimap.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/Multimap.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/Multiset.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/Multisets.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/SampleBuffer.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/Statistics.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/TreeMultimap.java ! jmh-core/src/main/java/org/openjdk/jmh/util/internal/TreesetMultimap.java ! jmh-core/src/scratch/JFRProfiler.java ! jmh-core/src/test/java/org/openjdk/jmh/TestMain.java ! jmh-core/src/test/java/org/openjdk/jmh/logic/TestLoop.java ! jmh-core/src/test/java/org/openjdk/jmh/logic/results/TestAggregateResult.java ! jmh-core/src/test/java/org/openjdk/jmh/logic/results/TestAverageTimePerOp.java ! jmh-core/src/test/java/org/openjdk/jmh/logic/results/TestOpsPerTimeUnit.java ! jmh-core/src/test/java/org/openjdk/jmh/logic/results/TestSampleTimePerOp.java ! jmh-core/src/test/java/org/openjdk/jmh/logic/results/TestSingleShotTime.java ! jmh-core/src/test/java/org/openjdk/jmh/runner/TestMicroBenchmarkList.java ! jmh-core/src/test/java/org/openjdk/jmh/runner/options/TestOptions.java ! jmh-core/src/test/java/org/openjdk/jmh/util/TestClassUtils.java ! jmh-core/src/test/java/org/openjdk/jmh/util/TestFileUtils.java ! jmh-core/src/test/java/org/openjdk/jmh/util/TestStatistics.java ! jmh-samples/pom.xml ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_01_HelloWorld.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_02_BenchmarkModes.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_03_States.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_04_DefaultState.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_05_StateFixtures.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_06_FixtureLevel.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_07_FixtureLevelInvocation.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_08_DeadCode.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_09_Blackholes.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_10_ConstantFold.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_11_Loops.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_12_Forking.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_13_RunToRun.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_15_Asymmetric.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_16_CompilerControl.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_17_SyncIterations.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_18_Control.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_20_Annotations.java ! jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_21_ConsumeCPU.java ! jmh-simple-benchmark-archetype/src/main/resources/archetype-resources/src/main/java/MyBenchmark.java From sergey.kuksenko at oracle.com Sat Jul 6 10:53:05 2013 From: sergey.kuksenko at oracle.com (Sergey Kuksenko) Date: Sat, 06 Jul 2013 21:53:05 +0400 Subject: FIX: @Thread(0) annotation cause incorrect microbenchmark generation Message-ID: <51D85981.2060407@oracle.com> Hi All, BUG: JMH annotation processor in case of @Thread(0) annotation generates code which fails with division by zero. Fix suggested: http://cr.openjdk.java.net/~skuksenko/jmh/zerothreads-bug/webrev.00/ -- Best regards, Sergey Kuksenko From aleksey.shipilev at oracle.com Sat Jul 6 12:20:24 2013 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Sat, 06 Jul 2013 23:20:24 +0400 Subject: FIX: @Thread(0) annotation cause incorrect microbenchmark generation In-Reply-To: <51D85981.2060407@oracle.com> References: <51D85981.2060407@oracle.com> Message-ID: <51D86DF8.80809@oracle.com> On 07/06/2013 09:53 PM, Sergey Kuksenko wrote: > Fix suggested: > http://cr.openjdk.java.net/~skuksenko/jmh/zerothreads-bug/webrev.00/ Thank you, pushed. -Aleksey. P.S. Note that your webrev had tried to remove jmh-core-it/src/test/java/org/openjdk/jmh/it/fork/ForkedJvmArgsTest.java From aleksey.shipilev at oracle.com Sat Jul 6 12:18:20 2013 From: aleksey.shipilev at oracle.com (aleksey.shipilev at oracle.com) Date: Sat, 06 Jul 2013 19:18:20 +0000 Subject: hg: code-tools/jmh: @Thread(0) annotation cause incorrect microbenchmark generation Message-ID: <20130706191820.7FE3748875@hg.openjdk.java.net> Changeset: 7385f6cf96be Author: shade Date: 2013-07-06 23:17 +0400 URL: http://hg.openjdk.java.net/code-tools/jmh/rev/7385f6cf96be @Thread(0) annotation cause incorrect microbenchmark generation Summary: Handle the zero corner case. Contributed-by: Sergey Kuksenko + jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/OneThreadCountTest.java + jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/TwoThreadCountTest.java + jmh-core-it/src/test/java/org/openjdk/jmh/it/threads/ZeroThreadCountTest.java ! jmh-core/src/main/java/org/openjdk/jmh/processor/internal/GenerateMicroBenchmarkProcessor.java From julien.nicoulaud at gmail.com Mon Jul 8 10:47:13 2013 From: julien.nicoulaud at gmail.com (Julien Nicoulaud) Date: Mon, 8 Jul 2013 19:47:13 +0200 Subject: Abstract classes annotation processing Message-ID: Hi all, It seems JMH's annotation processor does not look into super classes for annotations. It would be great to support that, as it would allow to have "pseudo-parameterized" tests, for example something like this: https://gist.github.com/nicoulaj/5950889 Or may be there is another way to run the same benchmark code against multiple implementations ? Regards, Julien From aleksey.shipilev at oracle.com Mon Jul 8 11:17:23 2013 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 08 Jul 2013 22:17:23 +0400 Subject: Abstract classes annotation processing In-Reply-To: References: Message-ID: <51DB0233.3070508@oracle.com> Hi Julien, On 07/08/2013 09:47 PM, Julien Nicoulaud wrote: > It seems JMH's annotation processor does not look into super classes for > annotations. It would be great to support that, as it would allow to have > "pseudo-parameterized" tests, for example something like this: > https://gist.github.com/nicoulaj/5950889 Hm, the premise was to allow this behavior (I even remember building the integration tests for cases like these). I had drafted the quick integration tests for your issue, and it is a bug. Let me see if it is easily fixable. > Or may be there is another way to run the same benchmark code against > multiple implementations ? Nope, your "parametrization" approach is OK. We also use switches in @Setup to get the overloaded implementations. -Aleksey. From aleksey.shipilev at oracle.com Mon Jul 8 11:47:56 2013 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Mon, 08 Jul 2013 22:47:56 +0400 Subject: Abstract classes annotation processing In-Reply-To: <51DB0233.3070508@oracle.com> References: <51DB0233.3070508@oracle.com> Message-ID: <51DB095C.2000709@oracle.com> On 07/08/2013 10:17 PM, Aleksey Shipilev wrote: > Hi Julien, > > On 07/08/2013 09:47 PM, Julien Nicoulaud wrote: >> It seems JMH's annotation processor does not look into super classes for >> annotations. It would be great to support that, as it would allow to have >> "pseudo-parameterized" tests, for example something like this: >> https://gist.github.com/nicoulaj/5950889 > > Hm, the premise was to allow this behavior (I even remember building the > integration tests for cases like these). I had drafted the quick > integration tests for your issue, and it is a bug. Let me see if it is > easily fixable. It is not easily fixable, because we lack the way to walk the class hierarchy down from the superclass. In fact, that *does* makes sense, because you can compile the JAR with the base class annotated with @GMB, and compile the subclass separately. Annotation processor has no knowledge what it should look for in the subclasses. (Pessimistically, it should walk every single class and see if any superclass has the methods with the annotation in question). N.B.: @Inherited would be useful with this, but it only works on class annotations, not the method annotations. The workaround I see right now is to make @GMB methods in each subclass, and call super right away, e.g.: abstract class BaseBench { abstract protected int doWork(); @GMB public int measure() { return doWork(); } } class Case1Bench extends BaseBench { protected int doWork() { return 42; } @GMB public int measure() { return super.measure(); } } -Aleksey. From aleksey.shipilev at oracle.com Thu Jul 11 13:18:27 2013 From: aleksey.shipilev at oracle.com (aleksey.shipilev at oracle.com) Date: Thu, 11 Jul 2013 20:18:27 +0000 Subject: hg: code-tools/jmh: Regression: show the aggregates over the forked runs again. Message-ID: <20130711201827.A0907489E8@hg.openjdk.java.net> Changeset: 1f2690d966ec Author: shade Date: 2013-07-12 00:18 +0400 URL: http://hg.openjdk.java.net/code-tools/jmh/rev/1f2690d966ec Regression: show the aggregates over the forked runs again. ! jmh-core/src/main/java/org/openjdk/jmh/output/format/PrettyPrintFormat.java ! jmh-core/src/main/java/org/openjdk/jmh/runner/BenchmarkRecord.java From aleksey.shipilev at oracle.com Wed Jul 17 04:28:57 2013 From: aleksey.shipilev at oracle.com (aleksey.shipilev at oracle.com) Date: Wed, 17 Jul 2013 11:28:57 +0000 Subject: hg: code-tools/jmh: Blackholes: improve symmetry for different data types and values. Message-ID: <20130717112858.0E52048143@hg.openjdk.java.net> Changeset: 8046f2c4fce7 Author: shade Date: 2013-07-17 15:14 +0400 URL: http://hg.openjdk.java.net/code-tools/jmh/rev/8046f2c4fce7 Blackholes: improve symmetry for different data types and values. ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/BlackholeBench.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/BlackHole.java + jmh-core/src/test/java/org/openjdk/jmh/logic/BlackholeTest.java From aleksey.shipilev at oracle.com Wed Jul 17 04:44:29 2013 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Wed, 17 Jul 2013 15:44:29 +0400 Subject: Blackholes: improve symmetry for different data types and values Message-ID: <51E6839D.6060209@oracle.com> Hi, I have the external bug report that our Blackhole exhibit asymmetry in performance when being fed with different values. Disassembly shows weird things which seem hard to evade with our current blackholing scheme with primitives. With the headlines like that, I pushed: http://hg.openjdk.java.net/code-tools/jmh/rev/8046f2c4fce7 ...which now provides th symmetrical performance against all the data types and all the values, at the expense of few additional cycles per consume(). Note that we already have lots of overheads on that scale (the most prominent one being long "operations" counter incremented on every iteration). This is what we had before on 2x8x2 Sandybridge, Solaris 10, JDK 8b84: (single threaded version only, it scales nearly-perfectly) > > Benchmark Mode Thr Cnt Sec Mean Mean error Units > o.o.j.b.BlackholeBench.baseline avgt 1 5 1 0.287 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testArray avgt 1 5 1 3.050 0.001 nsec/op > o.o.j.b.BlackholeBench.explicit_testBoolean avgt 1 5 1 0.717 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testByte avgt 1 5 1 0.716 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testChar avgt 1 5 1 0.716 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testDouble avgt 1 5 1 0.860 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testFloat avgt 1 5 1 0.865 0.007 nsec/op > o.o.j.b.BlackholeBench.explicit_testInt avgt 1 5 1 0.716 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testLong avgt 1 5 1 0.717 0.002 nsec/op > o.o.j.b.BlackholeBench.explicit_testObject avgt 1 5 1 3.050 0.001 nsec/op > o.o.j.b.BlackholeBench.explicit_testShort avgt 1 5 1 0.716 0.000 nsec/op > o.o.j.b.BlackholeBench.implicit_testArray avgt 1 5 1 3.053 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testBoolean avgt 1 5 1 1.434 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testByte avgt 1 5 1 0.716 0.000 nsec/op > o.o.j.b.BlackholeBench.implicit_testChar avgt 1 5 1 0.716 0.000 nsec/op > o.o.j.b.BlackholeBench.implicit_testDouble avgt 1 5 1 0.885 0.032 nsec/op > o.o.j.b.BlackholeBench.implicit_testFloat avgt 1 5 1 0.860 0.000 nsec/op > o.o.j.b.BlackholeBench.implicit_testInt avgt 1 5 1 0.717 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testLong avgt 1 5 1 0.717 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testObject avgt 1 5 1 3.052 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testShort avgt 1 5 1 0.716 0.000 nsec/op And this is what we will have now: > Benchmark Mode Thr Cnt Sec Mean Mean error Units > o.o.j.b.BlackholeBench.baseline avgt 1 5 1 0.287 0.000 nsec/op > o.o.j.b.BlackholeBench.explicit_testArray avgt 1 5 1 2.883 0.001 nsec/op > o.o.j.b.BlackholeBench.explicit_testBoolean avgt 1 5 1 2.882 0.011 nsec/op > o.o.j.b.BlackholeBench.explicit_testByte avgt 1 5 1 2.881 0.010 nsec/op > o.o.j.b.BlackholeBench.explicit_testChar avgt 1 5 1 2.882 0.010 nsec/op > o.o.j.b.BlackholeBench.explicit_testDouble avgt 1 5 1 2.881 0.009 nsec/op > o.o.j.b.BlackholeBench.explicit_testFloat avgt 1 5 1 2.883 0.002 nsec/op > o.o.j.b.BlackholeBench.explicit_testInt avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.explicit_testLong avgt 1 5 1 2.880 0.001 nsec/op > o.o.j.b.BlackholeBench.explicit_testObject avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.explicit_testShort avgt 1 5 1 2.877 0.009 nsec/op > o.o.j.b.BlackholeBench.implicit_testArray avgt 1 5 1 2.877 0.009 nsec/op > o.o.j.b.BlackholeBench.implicit_testBoolean avgt 1 5 1 2.877 0.010 nsec/op > o.o.j.b.BlackholeBench.implicit_testBoolean_false avgt 1 5 1 2.877 0.009 nsec/op > o.o.j.b.BlackholeBench.implicit_testBoolean_falseF avgt 1 5 1 2.877 0.009 nsec/op > o.o.j.b.BlackholeBench.implicit_testBoolean_true avgt 1 5 1 2.880 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testBoolean_trueF avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testByte avgt 1 5 1 2.877 0.009 nsec/op > o.o.j.b.BlackholeBench.implicit_testChar avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testDouble avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testFloat avgt 1 5 1 2.877 0.009 nsec/op > o.o.j.b.BlackholeBench.implicit_testInt avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testLong avgt 1 5 1 2.879 0.001 nsec/op > o.o.j.b.BlackholeBench.implicit_testObject avgt 1 5 1 2.879 0.000 nsec/op > o.o.j.b.BlackholeBench.implicit_testShort avgt 1 5 1 2.878 0.001 nsec/op We can still get it down to 1.6ns per call, but this will only work for implicit blackholes, and I'm contemplating if I want to break the symmetry in this way. -Aleksey. From aleksey.shipilev at oracle.com Fri Jul 19 12:47:18 2013 From: aleksey.shipilev at oracle.com (aleksey.shipilev at oracle.com) Date: Fri, 19 Jul 2013 19:47:18 +0000 Subject: hg: code-tools/jmh: Backed out changeset 8046f2c4fce7 Message-ID: <20130719194718.BA31F48229@hg.openjdk.java.net> Changeset: 62e726a16873 Author: shade Date: 2013-07-19 23:44 +0400 URL: http://hg.openjdk.java.net/code-tools/jmh/rev/62e726a16873 Backed out changeset 8046f2c4fce7 ! jmh-core-benchmarks/src/main/java/org/openjdk/jmh/benchmarks/BlackholeBench.java ! jmh-core/src/main/java/org/openjdk/jmh/logic/BlackHole.java - jmh-core/src/test/java/org/openjdk/jmh/logic/BlackholeTest.java From viy.net at gmail.com Wed Jul 24 04:59:46 2013 From: viy.net at gmail.com (Eugene Voytitsky) Date: Wed, 24 Jul 2013 14:59:46 +0300 Subject: Simplest way to run benchmark for single class? Message-ID: <51EFC1B2.9070307@gmail.com> Hi all, I just git cloned jmh, looked at src and tried to run benchmark for bundled JMHSample_11_Loops.class. And I failed... I tried to run it from IDEA as app "org.openjdk.jmh.Main -v .*JMHSample_11_Loops.*" I got: No matching benchmarks. Miss-spelled regexp? Use -v for verbose output. Benchmarks: Yes, indeed, I don't have any /META-INF/MicroBenchmarks, so MicroBenchmarkList.defaultList() produces empty result. I wonder why main() so coupled with defaultList() (with presence of /META-INF/MicroBenchmarks file) : Runner runner = new Runner(cmdOptions); runner.run(MicroBenchmarkList.defaultList()); I don't want to write any /META-INF/MicroBenchmarks. I want to benchmark single class passed as arg to Main. How to do so? Thanks in advance. -- Best regards, Eugene Voytitsky From aleksey.shipilev at oracle.com Wed Jul 24 05:51:49 2013 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Wed, 24 Jul 2013 16:51:49 +0400 Subject: Simplest way to run benchmark for single class? In-Reply-To: <51EFC1B2.9070307@gmail.com> References: <51EFC1B2.9070307@gmail.com> Message-ID: <51EFCDE5.6040800@oracle.com> Hi Eugene, On 07/24/2013 03:59 PM, Eugene Voytitsky wrote: > I tried to run it from IDEA as app "org.openjdk.jmh.Main -v > .*JMHSample_11_Loops.*" > I got: > No matching benchmarks. Miss-spelled regexp? Use -v for verbose output. > Benchmarks: > > Yes, indeed, I don't have any /META-INF/MicroBenchmarks, so > MicroBenchmarkList.defaultList() produces empty result. Have you tried to force compilation first to let JMH generate that for you? In IDEA, it seems enough to add "Run Maven Goal 'JMH Samples:install'" before launching the configuration. > I wonder why main() so coupled with defaultList() (with presence of > /META-INF/MicroBenchmarks file) : > Runner runner = new Runner(cmdOptions); > runner.run(MicroBenchmarkList.defaultList()); The major issue here is that we generate lots of auxiliary code during the benchmark compilation, and the entry point is different from the class you have. Hence, it is not enough to just have the name of class bearing @GMB methods. We may reconsider this going forward. We also see that running benchmarks from IDE is not a good idea anyway: we better push users to use the standalone VMs where they control the invocation precisely. > I don't want to write any /META-INF/MicroBenchmarks. > I want to benchmark single class passed as arg to Main. > > How to do so? You might want to execute the standalone run with "-v" and capture the forked command line. Although it is the internal API and can be changed without prior notice. -Aleksey