Java效率 - 点与坐标

时间:2011-10-24 15:29:50

标签: java performance animation 2d point

使用Point2D代替double x和y值时效率是否存在很大差异?

我正在制作一个有很多圈子在屏幕上移动的程序。它们各自从一个点开始,越来越靠近目的地(最后,它们停止)。

使用像.getCurrentLocation().GetY()这样的方法(其中currentLocationPoint2D),我的任何大量实体都会遇到性能下降的问题。

我不想无缘无故地回去修改我的所有代码,所以我问我是否会因为仅存储X和double坐标而显着提升性能使用Points

2 个答案:

答案 0 :(得分:7)

首先,您应该使用分析器来找出导致性能不佳的原因。我使用YourKit,但还有其他人。

如果Point2D确实是问题,您可以将您的积分表示为两个double数组,一个用于所有x坐标,一个用于所有y数组Point2D 1}}坐标。这可能比保留{{1}}个对象的集合要快得多。

答案 1 :(得分:3)

这取决于你是否经常创造新的积分。如果没有,即你重复使用现有的,你不应该有很大的性能差异。

在大多数情况下,对象的成本高昂不是存储而是对象创建。

但是,正如aix所建议的那样,尝试使用分析器来查找真正的性能瓶颈。