net.openhft.chronicle.core.Jvm.safepoint()方法的使用及代码示例

x33g5p2x  于2022-01-22 转载在 其他  
字(3.2k)|赞(0)|评价(0)|浏览(95)

本文整理了Java中net.openhft.chronicle.core.Jvm.safepoint()方法的一些代码示例,展示了Jvm.safepoint()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Jvm.safepoint()方法的具体详情如下:
包路径:net.openhft.chronicle.core.Jvm
类名称:Jvm
方法名:safepoint

Jvm.safepoint介绍

暂无

代码示例

代码示例来源:origin: OpenHFT/Chronicle-Queue

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();
}

代码示例来源:origin: OpenHFT/Chronicle-Queue

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;
}

代码示例来源:origin: OpenHFT/Chronicle-Queue

while (running) {
  loopTime.sample(System.nanoTime() - endLoop);
  Jvm.safepoint();
  Jvm.safepoint();
  endLoop = System.nanoTime();

代码示例来源:origin: OpenHFT/Chronicle-Threads

@Override
public void pause() {
  ++count;
  if (count < minBusy) {
    Jvm.safepoint();
    return;
  }
  yield();
}

代码示例来源:origin: OpenHFT/Chronicle-Threads

@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);
}

代码示例来源:origin: net.openhft/chronicle-queue

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();
}

代码示例来源:origin: net.openhft/chronicle-queue

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;
}

代码示例来源:origin: net.openhft/chronicle-queue

while (running) {
  loopTime.sample(System.nanoTime() - endLoop);
  Jvm.safepoint();
  Jvm.safepoint();
  endLoop = System.nanoTime();

相关文章