【发布时间】:2011-06-05 07:26:38
【问题描述】:
我有一个方法,第一次执行需要很长时间。但是经过多次调用,它需要的时间减少了大约 30 倍。所以,为了让我的应用程序更快地响应用户交互,我用一些关于应用程序初始化的示例数据“预热”了这个方法(5 次)。但这会增加应用程序的启动时间。
我读到,JVM 可以优化我的 java 代码并将其编译为本机代码,从而加快速度。
我想知道 - 也许有某种方法可以明确告诉 JVM 我希望在应用程序启动时编译此方法?
【问题讨论】:
-
你真的确定它在被多次调用后性能更好,正是因为 JVM 优化。根据您的方法的作用,它也可能是其他东西 - 例如,磁盘或数据库缓存......
-
@Rogach:你不能先优化你的方法吗?它是做什么的?
-
这个方法具体是做什么的?
-
这个方法太大了,把它贴在这里,但基本上它需要像 Path2D 这样的集合,并根据包含另一个路径的路径将它们组合在一起。其中最长的部分是检查形状的自相交,这是使用 Shamos-Hoey 算法完成的。执行速度似乎不是基于chaching——我可以给方法各种样本数据集(以及各种实际数据),效果还是一样的——方法在执行后变得更快。跨度>
-
pastebin.com/j5RAxs0s - 这是我的应用程序的两个源文件。有问题的方法是 Litera.prepareLiteras()
标签: java optimization jvm