【发布时间】:2011-01-07 16:51:02
【问题描述】:
一个执行频繁摆动/awt 绘画动画的 java 程序(但没有比 g.fillOval(...) 更高级的了)在 Netbeans 中以一致的 60fps 运行,在 Eclipse 中运行或作为 jar 执行时大约为 6fps来自 Unix 终端的文件。该程序是在 Netbeans 中开发的,是普通的桌面应用程序(不是 webstart 或 japplet 或......)。这发生在带有 java 1.6 的 Ubuntu 10 中。这怎么可能?
$java -version
java版本“1.6.0_22”Java(TM) SE 运行时环境(build 1.6.0_22-b04)
Java HotSpot(TM) Client VM(build 17.1-b03,混合模式,共享)
设置默认jvm为sun版本,输出netbeans和unix终端使用的jvm,两者都是一样的:
java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=/usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/i386, java.vm.version=17.1-b03, java.vm.vendor=Sun Microsystems Inc.
但是,这没有任何区别,因为仍然存在显着的帧速率差异。是否还有其他因素可能在这里发挥作用?
【问题讨论】:
-
在 ubuntu 中你运行的是 Sun 的 JVM 吗?
-
“在 NetBeans 中”运行实际上意味着什么?它仍然是由 NetBeans 启动的一个单独的 JVM 进程,对吗?如果是这样,是否有可能找出NB使用什么命令行来启动它?
-
首先发布 java --version 的输出。
-
OpenJDK != Sun 的 JDK :)。安装 Sun JDK 并重试
-
另外,我相信您可以在运行时检查系统属性 (System.getProperties()) 并验证您在每种情况下运行的 JVM。
标签: java performance