![]() |
1
10
我看不出你的代码有什么问题。 但是,不幸的是,您不能在Java中指定处理器关联。所以,这实际上由操作系统决定,而不是由JVM决定。这都是关于你的操作系统如何处理线程。 您可以将Java线程分割成不同的进程,并用本机代码将它们包装起来,从而为每个核心放置一个进程。当然,这会使通信复杂化,因为它是进程间的而不是线程间的。无论如何,像boink这样的流行网格计算应用程序就是这样工作的。
|
![]() |
2
4
我猜这是JVM/OS固有的,不一定是你的代码。检查Sun的各种JVM性能优化文档,例如。
http://ch.sun.com/sunnews/events/2009/apr/adworkshop/pdf/5-1-Java-Performance.pdf
建议使用
祝你好运! |
|
3
2
显然,您的VM是在所谓的“客户机”模式下运行的,在这种模式下,所有Java线程都映射到一个本机OS线程,因此由一个CPU内核运行。尝试调用JVM
|
![]() |
4
1
找到对应内核版本 2.6.18-194.11.4.el5#1 SMP Tue 9月21日05:04:09美国东部时间2010 x86 x86 x86 x86 GNU/Linux 英特尔(R)至强(R)CPU E5530@2.40GHz http://browse.geekbench.ca/geekbench2/view/182101 Java 1.6.0_20-b02版
有趣的是,我之所以来看这篇文章,是因为我怀疑我的应用程序没有利用所有的内核,因为cpu利用率从未增加,但响应时间开始恶化 |
![]() |
5
0
我注意到,即使在C语言中,一个紧循环也经常会出现这样的问题。根据操作系统的不同,您也会看到相当大的差异。 根据您使用的报告工具,它可能不会报告某些核心服务使用的CPU。
如果你的jvm没有使用绿色线程,在应用程序中设置线程优先级可能也会有点帮助。 很多变数。 |
![]() |
user3216514 · WebSocket和可扩展性 7 年前 |
![]() |
greg · 如何检测多核可扩展性/争用问题 7 年前 |
![]() |
Sonam · rabbit mq的缩放 7 年前 |
![]() |
Kevin Cohen · neo4j获取新节点列表(更改提要) 7 年前 |
![]() |
coolk · rdbms的自动保存性能 7 年前 |
![]() |
Leonardo · 线程池。将线程设置为预热策略 7 年前 |
![]() |
stojsins · CSS可扩展性图像映射 10 年前 |
![]() |
fstab · 对正常控制流程使用例外情况是一种不鼓励还是不鼓励的做法? 11 年前 |