private static void runInner(Histogram transportTime, Histogram readTime, ExcerptTailer tailer) { Jvm.safepoint(); if (tailer.peekDocument()) { if (counter++ < 1000) { Jvm.safepoint(); return; } } if (counter > 0) Jvm.safepoint(); else Jvm.safepoint(); counter = 0; try (DocumentContext dc = tailer.readingDocument(false)) { Jvm.safepoint(); if (!dc.isPresent()) { return; } long transport = System.nanoTime(); Jvm.safepoint(); Wire wire = dc.wire(); Bytes<?> bytes = wire.bytes(); long start = readMessage(bytes); long end = System.nanoTime(); transportTime.sample(transport - start); readTime.sample(end - transport); } Jvm.safepoint(); }
private static long readMessage(Bytes<?> bytes) { Jvm.safepoint(); long start = bytes.readLong(); if (true) { long rp = bytes.readPosition(); long rl = bytes.readLimit(); long addr = bytes.addressForRead(rp); long addrEnd = bytes.addressForRead(rl); Memory memory = OS.memory(); for (addr += 8; addr + 7 < addrEnd; addr += 8) memory.readLong(addr); } else { while (bytes.readRemaining() > 7) bytes.readLong(); } Jvm.safepoint(); return start; }
@Override public void pause() { ++count; if (count < minBusy) { Jvm.safepoint(); return; } yield(); }
@Override public void pause() { long maxPauseNS = parkPeriodNS; if (busyPeriodNS > 0) { if (count++ < 1000) { Jvm.safepoint(); return; } if (pauseStart == 0) { pauseStart = System.nanoTime(); return; } if (System.nanoTime() < pauseStart + busyPeriodNS) return; } if (maxPauseNS < 10000) return; thread = Thread.currentThread(); pausing.set(true); long start = System.currentTimeMillis(); doPause(maxPauseNS); long time = System.currentTimeMillis() - start; timePaused += time; countPaused++; pausing.set(false); }
private static void runInner(Histogram transportTime, Histogram readTime, ExcerptTailer tailer) { Jvm.safepoint(); if (tailer.peekDocument()) { if (counter++ < 1000) { Jvm.safepoint(); return; } } if (counter > 0) Jvm.safepoint(); else Jvm.safepoint(); counter = 0; try (DocumentContext dc = tailer.readingDocument(false)) { Jvm.safepoint(); if (!dc.isPresent()) { return; } long transport = System.nanoTime(); Jvm.safepoint(); Wire wire = dc.wire(); Bytes<?> bytes = wire.bytes(); long start = readMessage(bytes); long end = System.nanoTime(); transportTime.sample(transport - start); readTime.sample(end - transport); } Jvm.safepoint(); }
private static long readMessage(Bytes<?> bytes) { Jvm.safepoint(); long start = bytes.readLong(); long rp = bytes.readPosition(); long rl = bytes.readLimit(); long addr = bytes.addressForRead(rp); long addrEnd = bytes.addressForRead(rl); Memory memory = OS.memory(); for (addr += 8; addr + 7 < addrEnd; addr += 8) memory.readLong(addr); Jvm.safepoint(); return start; }