Java寰熀鍑嗘祴璇曟鏋禞MH鎬庝箞浣跨敤
浣跨敤Java寰熀鍑嗘祴璇曟鏋禞MH闇€瑕佹寜鐓т互涓嬫楠よ繘琛岋細
- 鍒涘缓涓€涓狫ava椤圭洰锛屽苟灏咼MH渚濊禆娣诲姞鍒伴」鐩殑鏋勫缓鏂囦欢涓紙渚嬪锛孧aven鐨刾om.xml鏂囦欢锛夈€?/li>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.27</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.27</version>
</dependency>
- 鍒涘缓涓€涓寘鍚熀鍑嗘祴璇曟柟娉曠殑绫汇€傚熀鍑嗘祴璇曟柟娉曚娇鐢ˊBenchmark娉ㄨВ杩涜鏍囪銆?/li>
import org.openjdk.jmh.annotations.Benchmark;
public class MyBenchmark {
@Benchmark
public void myMethod() {
// 鍩哄噯娴嬭瘯鏂规硶鐨勫疄鐜?/span>
}
}
- 鍒涘缓涓€涓惎鍔ㄧ被锛岀敤浜庨厤缃拰鎵ц鍩哄噯娴嬭瘯銆?/li>
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
public class MyBenchmarkRunner {
public static void main(String[] args) throws RunnerException {
Options options = new OptionsBuilder()
.include(MyBenchmark.class.getSimpleName())
.forks(1)
.build();
new Runner(options).run();
}
}
- 杩愯鍚姩绫伙紝鍗冲彲鎵ц鍩哄噯娴嬭瘯銆?/li>
娉ㄦ剰锛氬熀鍑嗘祴璇曟柟娉曞繀椤绘槸public鐨勯潪闈欐€佹柟娉曪紝涓旂被涓笉鑳芥湁鍏朵粬鍩哄噯娴嬭瘯鏂规硶銆?/p>
闄や簡涓婅堪鍩烘湰姝ラ澶栵紝浣犺繕鍙互浣跨敤JMH鎻愪緵鐨勫叾浠栨敞瑙e拰閫夐」鏉ラ厤缃祴璇曪紝渚嬪@Setup鐢ㄤ簬鍒濆鍖栨柟娉曪紝@Warmup鐢ㄤ簬棰勭儹鏂规硶锛孈Measurement鐢ㄤ簬娴嬮噺鏂规硶绛夈€?/p>
鏇村鍏充簬JMH鐨勪娇鐢ㄦ柟娉曞拰閫夐」閰嶇疆锛岃鍙傝€僇MH鐨勫畼鏂规枃妗c€?/p>