Some sun.misc internal APIs are deprectaed in JDK 9 and will be encapsulated or removed in a future release.
private PerfData(int pid) throws IOException { ByteBuffer bb = Perf.getPerf().attach(pid, "r"); instr = new PerfInstrumentation(bb); counters = buildAllCounters(); long hz = (Long) counters.get("sun.os.hrt.frequency").getValue(); nanosPerTick = ((double) TimeUnit.SECONDS.toNanos(1)) / hz; }
public sun.misc.Perf run() { return sun.misc.Perf.getPerf(); } });
@SneakyThrows private Jvm() { val jvm = ManagementFactory.getRuntimeMXBean().getName(); val pid = Integer.parseInt(jvm.substring(0, jvm.indexOf('@'))); val buffer = Perf.getPerf().attach(pid, "r"); this.perfInstrumentation = new PerfInstrumentation(buffer); }
public PerfTimer () { _timer = Perf.getPerf(); init(_timer.highResFrequency() / 1000, _timer.highResFrequency() / 1000000); }
public PerfTimer () { _timer = Perf.getPerf(); init(_timer.highResFrequency() / 1000, _timer.highResFrequency() / 1000000); }
private static PerfInstrumentation attach(int pid) throws IllegalArgumentException, IOException { try { ByteBuffer bb = sun.misc.Perf.getPerf().attach(pid, "r"); PerfInstrumentation instr = new PerfInstrumentation(bb); return instr; } catch(NoClassDefFoundError e) { // try JDK 9 package ByteBuffer bb = jdk.internal.perf.Perf.getPerf().attach(pid, "r"); PerfInstrumentation instr = new PerfInstrumentation(bb); return instr; } }