0

两种方法实现:

public void setPosiotion(int x, int y) { //什么都不做 }

public void setPosiotion(Point point) { //什么都不做 }

如果我必须调用 setPosition() 10 亿次怎么办,不需要创建新 Point 的方法会明显更快地工作吗?

4

2 回答 2

2

它可能会产生很小的差异,但它可能少于您编写较长表达式所需的时间。有时你的时间和效率更重要。

比编写时间更重要的是维护代码所花费的时间,这可能是开发时间的 3 倍。这表明可维护性应该是您的主要关注点。

简而言之; 编写简单、清晰易懂的代码,它通常会表现良好,并且从长远来看是最有效的。

于 2012-04-06T07:52:45.763 回答
2

如果我必须调用 setPosition() 10 亿次怎么办,不需要创建新 Point 的方法会明显更快地工作吗?

这取决于setPosition方法的作用。

  • 如果该方法仅使用x和中的y值,Point那么不创建/传递Point对象可能会更快。

  • 如果该方法立即创建 aPoint来保存您传递的xandy值,那么您Point自己创建可能会更快。

由于最新的 JVM 可以使用转义分析来推断Point不需要将对象创建为堆对象,因此这很复杂。另一方面,它取决于需要传递多少级方法调用(等等)x和值。y

简而言之,很难预测。


最后,您的假设setPosition将被调用 10 亿次是值得怀疑的……除非您实际分析了应用程序。即使它是有效的,这些调用仍然可能对整个应用程序执行时间做出微不足道的贡献。

先剖析,优化。

于 2012-04-06T07:59:16.073 回答