我正在编写一个 Java 应用程序,但在我的 Ubuntu 11.10 64 位设置上,GUI 运行速度极慢。某些操作需要几秒钟才能响应。它在 Max OS X 和 Windows 7 上都运行完美,在运行 Win7 的新 Ubuntu 11.10(32 位和 64 位)VirtualBox 上实际上运行良好。
我已经尝试了三个不同的 Java 版本,但都没有用。问题可能出在哪里?
当前 Java 版本:
java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
答案1
您可能需要尝试安装版本 1.7(oracle 的版本,而不是 openjdk),并使用 update-alternatives 和 java -version 确保它是活动版本。
但请注意,Java 并不是一项快速的技术。您的应用程序被编译为中间字节码,需要由一个相当繁重的应用程序(称为 JVM)进行解释。虽然我不记得曾经经历过几秒钟的界面延迟,但我确实知道用 Java 编写的 GUI 往往很慢。
我从未注意到 Windows 7 和 ubuntu/opensuse 之间有任何区别(每个都是 64 位),但这可能是由于版本问题:我总是获得最新的官方 java sdk(即来自 Oracle)。
--
虽然这可能不是您想听到的答案,但如果您不明确需要 Java(我想如果您的目标是移动设备,您就会需要 Java)和/或性能对您的应用程序很重要,您可能需要寻找本机编译的替代方案。如果您熟悉 C++,那么带有 Qt 的 C++ 将是一个很好的选择。它使您的应用程序跨平台,而不会影响总体性能。
Mono/C# 带有预编译字节码的选项,因此您基本上拥有一个包含 mono 运行时的本机可执行文件(启动时很重,但运行时比 java 更快)。
答案2
根据您的描述,我认为这是一个视频驱动程序问题。在 ubuntu 中查找与视频卡相关的性能问题。在 VM 中,ubuntu 使用与硬件没有任何共同之处的 VM 特定驱动程序