class PerformanceTest {
private static class Singleton {
static Singleton s;
public static Singleton getInstance() {
if (s == null)
s = new Singleton();
return s;
}
public int get() {
return 9;
}
}
private static class InstanceRef {
public int get() {
return 9;
}
}
private static class Timer { protected long actualTime;
public void startTask() {
actualTime
= System.
nanoTime(); }
public long getCurrentTime() {
long i
= System.
nanoTime() - actualTime
; return i;
}
public void printActualTime() {
System.
out.
println(getCurrentTime
()); }
}
public static void main
(String[] args
) { t.startTask();
new InstanceRef().get();
t.printActualTime();
ti.startTask();
Singleton.getInstance().get();
ti.printActualTime();
}
}
Y2xhc3MgUGVyZm9ybWFuY2VUZXN0IHsKICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNpbmdsZXRvbiB7CiAgICAgICAgc3RhdGljIFNpbmdsZXRvbiBzOwogICAgICAgIHB1YmxpYyBzdGF0aWMgU2luZ2xldG9uIGdldEluc3RhbmNlKCkgewogICAgICAgICAgICBpZiAocyA9PSBudWxsKSAKICAgICAgICAgICAgICAgIHMgPSBuZXcgU2luZ2xldG9uKCk7CiAgICAgICAgICAgIHJldHVybiBzOwogICAgICAgIH0KICAgICAgICBwdWJsaWMgaW50IGdldCgpIHsKICAgICAgICAgICAgcmV0dXJuIDk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEluc3RhbmNlUmVmIHsKICAgICAgICBwdWJsaWMgaW50IGdldCgpIHsKICAgICAgICAgICAgcmV0dXJuIDk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRpbWVyIHsKICAgICAgICBwcm90ZWN0ZWQgbG9uZyBhY3R1YWxUaW1lOwoKICAgICAgICBwdWJsaWMgdm9pZCBzdGFydFRhc2soKSB7CiAgICAgICAgICAgIGFjdHVhbFRpbWUgPSBTeXN0ZW0ubmFub1RpbWUoKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBsb25nIGdldEN1cnJlbnRUaW1lKCkgewogICAgICAgICAgICBsb25nIGkgPSBTeXN0ZW0ubmFub1RpbWUoKSAtIGFjdHVhbFRpbWU7CiAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHZvaWQgcHJpbnRBY3R1YWxUaW1lKCkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZ2V0Q3VycmVudFRpbWUoKSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBUaW1lciB0ID0gbmV3IFRpbWVyKCk7CiAgICAgICAgdC5zdGFydFRhc2soKTsKICAgICAgICBuZXcgSW5zdGFuY2VSZWYoKS5nZXQoKTsKICAgICAgICB0LnByaW50QWN0dWFsVGltZSgpOwoKICAgICAgICBUaW1lciB0aSA9IG5ldyBUaW1lcigpOwogICAgICAgIHRpLnN0YXJ0VGFzaygpOwogICAgICAgIFNpbmdsZXRvbi5nZXRJbnN0YW5jZSgpLmdldCgpOwogICAgICAgIHRpLnByaW50QWN0dWFsVGltZSgpOwogICAgfQp9