我有一个从C移植到Java的程序。这两个应用程序都使用quicksort来排序一些分区数据(基因座标)。
Java版本运行速度很快,但我想使其更接近C版本。我正在使用Sun JDK v6u14。
显然我无法与C应用程序相提并论,但我想学习如何在合理的范围内(在环境限制内)获得尽可能多的性能。
我可以做哪些事情来测试应用程序不同部分的性能,内存使用情况等?我该怎么办?
另外,我可以实施哪些技巧(通常)来更改类和变量的属性和组织,从而减少内存使用并提高速度?
编辑 :我正在使用Eclipse,并且显然会首选任何第三方工具的免费选项。谢谢!
不要试图超越JVM。
特别是:
不要为了性能而避免创建对象
在适用的地方使用不可变的对象。
正确使用对象的范围,以便GC可以完成其工作。
在您指的是原语时使用原语(例如,不可为null的int与可为null的Integer相比)
使用内置的算法和数据结构
处理并发时,请使用java.util.concurrent包。
性能上的正确性。首先正确处理,然后进行测量,然后使用分析器进行测量,然后进行优化。