@Threads(4)
@Fork(1)
public class SingletonTest {
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(SingletonTest.class.getSimpleName())
.result(“SingletonTest_result.json”)
.resultFormat(ResultFormatType.JSON).build();
new Runner(opt).run();
}
@Benchmark
public Singleton1 getInstance1() {
return Singleton1.getInstance();
}
@Benchmark
public Singleton2 getInstance2() {
return Singleton2.getInstance();
}
@Benchmark
public Singleton3 getInstance3() {
return Singleton3.getInstance();
}
@Benchmark
public Singleton4 getInstance4() {
return Singleton4.INTANCE;
}
}
看下结果:
从结果上看,getInstance2从效率上略低,不过也可以理解,毕竟是吃了synchronized+volatile的亏。不过整体来看,区别不大。
=======================================================================&