在 Eclipse 里测试 / 分析 Java 程序性能,一般有 三种常见方式,从简单到专业:
System.currentTimeMillis() / System.nanoTime()适合:粗略看某段代码耗时
long start = System.nanoTime();
// 被测代码
for (int i = 0; i < 100000; i++) {
doSomething();
}
long end = System.nanoTime();
System.out.println("耗时:" + (end - start) / 1_000_000 + " ms");
✅ 优点:简单
❌ 缺点:不科学(JIT、GC 影响大)
适合:方法级性能测试(最准)
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.37</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.37</version>
</dependency>
@Benchmark
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
public class MyBenchmark {
@Benchmark
public void testMethod() {
// 被测代码
}
}
mvn clean package
java -jar target/benchmarks.jar
✅ Eclipse 直接跑 Maven 即可
✅ 结果非常可靠
适合:找“哪里慢、哪里吃内存”
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=heap.hprof
.hprof✅ 免费、好用、直观
如 TPTP(已过时,不推荐)
new Object+ 拼接(用 StringBuilder)| 目的 | 推荐方式 |
|---|---|
| 简单计时 | System.currentTimeMillis |
| 方法性能 | JMH |
| 内存问题 | MAT / VisualVM |
| 总体分析 | VisualVM |
如果你愿意,可以告诉我:
我可以直接给你可运行的 Eclipse 示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。