我有一个程序从 C 移植到 Java。这两个应用程序都使用快速排序来排序一些分区数据(基因组坐标)。
Java 版本运行速度很快,但我想让它更接近 C 版本。我使用的是 Sun JDK v6u14。
显然,我无法与 C 应用程序相媲美,但我想了解如何才能在合理的范围内(在环境的限制内)获得尽可能多的性能。
我可以做哪些事情来测试应用程序不同部分的性能、内存使用情况等?具体来说我会做什么?
另外,我可以(一般)实施哪些技巧来更改类和变量的属性和组织,减少内存使用并提高速度?
EDIT:我正在使用 Eclipse,并且显然更喜欢任何第三方工具的免费选项。谢谢!
不要试图比 jvm 更聪明。
尤其:
不要试图避免对象创建
为了性能
在哪里使用不可变对象
适用的。
使用对象的范围
正确,以便 GC 能够完成其任务
工作。
在你想要的地方使用原语
原语(例如不可空 int
与可空整数相比)
使用内置算法和数据结构
处理并发时使用 java.util.concurrent 包。
正确性胜过性能。首先做对,然后测量,然后用分析器测量,然后优化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)