Java - 实例化的权重

mom*_*omo 2 java performance

说我有一个非常轻量级的对象:

public class Point {
  public int x;
  public int y;
  public Point(int ax, int ay){
    x = ax;
    y = ay;
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要非常频繁地计算距离 - 例如,在移动设备上的滚动事件期间,可能每秒发射几次.

如果每次使用新的Point(a,b)使代码更清晰,更透明,那么性能是否足够重要,我应该考虑缓存一些引用并更新成员变量(而不是实例化)?

ner*_*erd 5

就个人而言,我不担心每次需要一个点时实例化这些对象.虽然是的,但缓存一些会更快一些,我同意它会使代码不那么干净.看看这篇Java性能优化书有关对象创建成本的内容:https://www.safaribooksonline.com/library/view/java-performance-tuning/0596000154/ch04.html

基本上,如果旧的Pentium II每秒可以创建一百万个轻量级对象,那么考虑到今天的处理器/内存等等,我认为你没有什么可担心的.