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

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

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

Jvm.trimStackTrace介绍

[英]Append the StackTraceElements to the StringBuilder trimming some internal methods.
[中]将StackTraceElements附加到StringBuilder中并修剪一些内部方法。

代码示例

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

@Override
  public boolean action() {
    long time = timeSupplier.getAsLong();
    if (time == Long.MIN_VALUE)
      return false;
    long latency = System.nanoTime() - time;
    if (latency > timeLimit) {
      Thread thread = threadSupplier.get();
      if (thread != null && thread.isAlive() && LOG.isInfoEnabled()) {
        String type = (time == lastTime) ? "re-reporting" : "new report";
        StringBuilder out = new StringBuilder().append("THIS IS NOT AN ERROR, but a profile of the thread, ").append(description).append(" thread ").append(thread.getName()).append(" blocked for ").append(latency / 1000000).append(" ms. ").append(type);
        Jvm.trimStackTrace(out, thread.getStackTrace());
        LOG.info(out.toString());
        lastTime = time;
      }
    }
    return false;
  }
}

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

StringBuilder sb = new StringBuilder();
sb.append("Reader: profile of the thread");
Jvm.trimStackTrace(sb, reader.getStackTrace());
System.out.println(sb);

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

public void dumpRunningState(@NotNull String message, @NotNull BooleanSupplier finalCheck) {
  Thread thread = this.thread;
  if (thread == null) return;
  StringBuilder out = new StringBuilder(message);
  Jvm.trimStackTrace(out, thread.getStackTrace());
  if (finalCheck.getAsBoolean() && LOG.isInfoEnabled())
    LOG.info(out.toString());
}

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

private void dumpThreads() {
  for (@NotNull Map.Entry<Thread, StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet()) {
    Thread thread = entry.getKey();
    if (thread.getThreadGroup().getName().equals("system"))
      continue;
    @NotNull StringBuilder sb = new StringBuilder();
    sb.append(thread).append(" ").append(thread.getState());
    Jvm.trimStackTrace(sb, entry.getValue());
    sb.append("\n");
    Jvm.warn().on(getClass(), "\n========= THREAD DUMP =========\n" + sb.toString());
  }
}

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

/**
 * Log the stack trace of the thread holding a lock.
 *
 * @param lock to log
 * @return the lock.toString plus a stack trace.
 */
public static String lockWithStack(@NotNull ReentrantLock lock) {
  @Nullable Thread t = getValue(lock, "sync/exclusiveOwnerThread");
  if (t == null) {
    return lock.toString();
  }
  @NotNull StringBuilder ret = new StringBuilder();
  ret.append(lock).append(" running at");
  trimStackTrace(ret, t.getStackTrace());
  return ret.toString();
}

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

/**
 * Log the stack trace of the thread holding a lock.
 *
 * @param lock to log
 * @return the lock.toString plus a stack trace.
 */
public static String lockWithStack(@NotNull ReentrantLock lock) {
  @Nullable Thread t = getValue(lock, "sync/exclusiveOwnerThread");
  if (t == null) {
    return lock.toString();
  }
  @NotNull StringBuilder ret = new StringBuilder();
  ret.append(lock).append(" running at");
  trimStackTrace(ret, t.getStackTrace());
  return ret.toString();
}

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

public void assertNoNewThreads() {
    @Nullable Map<Thread, StackTraceElement[]> allStackTraces = null;
    for (int i = 1; i < 5; i++) {
      Jvm.pause(i * i * 50);
      allStackTraces = Thread.getAllStackTraces();
      allStackTraces.keySet().removeAll(threads);
      if (allStackTraces.isEmpty())
        return;
      allStackTraces.keySet().removeIf(next -> ignored.stream().anyMatch(item -> next.getName().contains(item)));
      if (allStackTraces.isEmpty())
        return;
      for (@NotNull Map.Entry<Thread, StackTraceElement[]> threadEntry : allStackTraces.entrySet()) {
        @NotNull StringBuilder sb = new StringBuilder();
        sb.append("Thread still running ").append(threadEntry.getKey());
        Jvm.trimStackTrace(sb, threadEntry.getValue());
        System.err.println(sb);
      }
    }
    throw new AssertionError("Threads still running " + allStackTraces.keySet());
  }
}

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

public void assertNoNewThreads() {
    @Nullable Map<Thread, StackTraceElement[]> allStackTraces = null;
    for (int i = 1; i < 5; i++) {
      Jvm.pause(i * i * 50);
      allStackTraces = Thread.getAllStackTraces();
      allStackTraces.keySet().removeAll(threads);
      if (allStackTraces.isEmpty())
        return;
      allStackTraces.keySet().removeIf(next -> ignored.stream().anyMatch(item -> next.getName().contains(item)));
      if (allStackTraces.isEmpty())
        return;
      for (@NotNull Map.Entry<Thread, StackTraceElement[]> threadEntry : allStackTraces.entrySet()) {
        @NotNull StringBuilder sb = new StringBuilder();
        sb.append("Thread still running ").append(threadEntry.getKey());
        Jvm.trimStackTrace(sb, threadEntry.getValue());
        System.err.println(sb);
      }
    }
    throw new AssertionError("Threads still running " + allStackTraces.keySet());
  }
}

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

.append(" blocked for ").append(TimeUnit.NANOSECONDS.toMillis(latency))
    .append(" ms. ").append(type);
Jvm.trimStackTrace(out, thread.getStackTrace());
logConsumer.accept(out.toString());

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

sb.append("Shutting down thread is executing ").append(thread)
    .append(", " + "handlerCount=").append(handlerCount()).append("\n");
Jvm.trimStackTrace(sb, thread.getStackTrace());
Jvm.warn().on(getClass(), sb.toString());
dumpRunningHandlers();

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

StringBuilder sb = new StringBuilder();
sb.append("Reader: profile of the thread");
Jvm.trimStackTrace(sb, reader.getStackTrace());
System.out.println(sb);

相关文章