2

我不确定这是最好的例子,但这里是。假设我想在 Android 应用程序的画布上绘制一个对象。我需要做一些数学运算并调用一个方法来返回屏幕大小以确定在哪里绘制它,因为我的应用程序应该支持多个屏幕。我真的只需要执行一次这个过程,因为每次我想要绘制对象时,它都会被绘制到同一个地方。如果我只执行一次该过程,我必须将返回值保存在内存中,以便以后可以参考它们。

或者,我可以在每次想要绘制对象时调用该过程来获取这些值,这样我就不必在活动的整个生命周期内将任何值保存在内存中。

现在我知道,并非所有情况都是相同的,因为我可以编写一个花哨的 100,000 行算法,它只返回一个整数值,或者走到相反的极端,但我希望有一个普遍考虑的常识权衡可以接受。

那么,正确的做法是什么?你能详细说明吗?

谢谢各位!

4

2 回答 2

4

我使用的常识权衡是“不要过早优化”。我构建我的代码,选择当时我能做的最简单、最清晰的实现。这是编写正确工作代码的最快方法。然后我测试并分析代码。只有这样我才能解决需要优化的领域。

如果分析代码使用太多内存,我会返回并优化空间与时间。如果分析代码运行太慢,反之亦然。

如果我花太多时间预先考虑如何优化代码,我会引入不必要的复杂性,并且总是无法适当关注最终系统中的重要优化。

于 2010-10-29T13:02:46.463 回答
0

取决于应用程序的类型。你知道经济学的供求曲线吗?争取边际成本……至少对于智能手机来说,这没什么大不了的,除非你杀死太多的内存或处理能力来让你的应用程序看起来慢得令人尴尬。

于 2010-10-29T13:07:30.147 回答