首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java方法的高执行时间

java方法的高执行时间
EN

Stack Overflow用户
提问于 2011-08-16 06:01:36
回答 2查看 546关注 0票数 3

我在CentOS 5.4VPS上运行java服务器。VPS统计数据:-2.5 JDK单核处理器-2 2GB内存- OpenJDK 1.6 (也尝试过SunJDK1.7)

我遇到了java进程的CPU使用率非常高的问题。然后,我尝试分析java进程,看看是什么导致了速度减慢。我发现简单的方法(如Random.nextInt():787ms)需要1000毫秒才能完成一次调用。大多数方法不应该花费这么长时间,并且会在我的服务器上造成非常高的CPU使用率。这是CentOS出了什么问题吗?还是Java?或者是我的VPS上有什么配置不正确?

EN

回答 2

Stack Overflow用户

发布于 2011-09-22 03:43:09

不要在源代码中添加计时,而是尝试使用BTrace:http://kenai.com/projects/btrace这样的java代理,它可以让您获得所需的信息,但不会弄乱您的应用程序源代码。

BTrace可以与可视化工具结合使用,比如EurekaJ (我已经创建了一个用于可视化BTtrace输出的项目):http://eurekaj.haagen.name

其他商业分析选项也是可用的,例如JProfiler或YourKit,但它们确实有价格标签。

票数 3
EN

Stack Overflow用户

发布于 2011-08-17 02:55:19

当你测量程序中的处理时间时,你能重现你的时间吗,比如下面这样:

代码语言:javascript
复制
long start = System.currentTimeMillis();

/* Your code */

[...]    

long time = System.currentTimeMillis() - start;

System.out.println("Measurement: " + time);

另外,你所说的“当Java没有占用97%的CPU时,它是很快的”是什么意思?为什么Java一开始就占了97%?是否有多个线程在运行?你的计算是短时间的还是长时间的?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7071334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档