java - 测量 Java 执行时间

标签 java duration measurement

我正在寻找一个可以测量我的java代码执行时间的“东西”。我知道我可以通过大量使用 System.nanoTime() 和类似的东西来做到这一点,但我需要更高级的东西。

这是我想做的

gate.start("request");
gate.start("dbstuff");
doDbStuff();
gate.stop("dbstuff");
gate.start("businesslogic");
doSomeSimpleStuff();
for (int i = 0; i < 100; i++) {
  gate.start("complexeAlgorithm"); // sum the 100 cycles
  doComplexeAlgorithm();
  gate.stop("complexeAlgorithm");
}
gate.stop("businesslogic");
gate.stop("request");

输出应该是这样的

request 3.000 ms
+ dbstuff 700 ms
+ businesslogic 2.100 ms
  + complexeAlgorithm 300 ms
  + rest 1.800 ms
+ rest 200 ms

那个“东西”可能是一个框架或一个 JVM 工具或任何东西,它可以帮助我找到性能 killer 。有什么建议吗?

最佳答案

您需要一个分析器,最简单的一个是免费的:看看jvisualvm,它附带了java SDK。其他选项是 Yourkitjprofiler

分析不是一个简单的话题,所以最好在网上搜索“java profiler”。

关于java - 测量 Java 执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625699/

相关文章:

testing - 如何解释 `cargo bench` 的输出?

java - Java 中的 Miller-Rabin 素数测试

java - "Not Bound To A Valid Camera"CameraX错误

Java - 解析日期/期间的优雅方式?

javascript - jquery动画没有持续时间

Javascript 测量多个 div 高度

javascript - 如何计算文本的总宽度,包括左右轴承

java - 我可以在 DateTimeFormatterBuilder 的格式之间切换吗?

java - Spring - 在配置中使用工厂bean?

javascript - Android video.duration 直到 video.play() 才会加载