java代码,运行时间问题?

[复制链接]
查看11 | 回复3 | 2012-11-16 13:07:40 | 显示全部楼层 |阅读模式
还是几十次取平均值吧,因为后台的 GC 什么的也会影响它。比如你在调用未优化的代码时内存相当清洁,但执行完成后留下点对象,GC 对它感兴趣,但只是尚未动手处理,到执行优化后的方法时内存有点紧张,这时 GC 动手了,让所有线程暂停 5 毫秒,那你就看到最后优化后的反而多了 3 毫秒了。 所以,你现时需要打开 JVM GC 日志看看有没有真地出现 GC 影响了时间的计算。在命令行添加 -verbose:gc 来看看日志。当然只是在偏差太大的时候才确认一下,如果你计算多数的平均值就不需要看 GC 日志了,除非你的服务器很忙,导致 GC 时间可能花几秒钟甚至几十秒。...
回复

使用道具 举报

千问 | 2012-11-16 13:07:40 | 显示全部楼层
多次取平均值。还有个工具库perf4j干这种事。另外:返回的毫秒是long类型的,不是double;把计算用时的代码放到方法外long start = System.currentTimeMillis();method1();long end = System.currentTimeMillis();System.out.prin...
回复

使用道具 举报

千问 | 2012-11-16 13:07:40 | 显示全部楼层
不诡异阿,亲,你得出的时间是执行method1,method2方法所消耗的时间,调用顺序换位置,并没有改变两个方法执行时消耗的时间呃,你认为呢?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行