java - 一般来说,我应该编写节省内存的代码还是节省智能手机应用程序简单对象处理时间的代码?

标签 java iphone android memory smartphone

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

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

现在我知道,并非所有情况都是一样的,因为我可以编写一个奇特的 100,000 行算法,只返回一个整数值,或者走向相反的极端,但我希望有一个常识权衡一般认为是可以接受的。

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

谢谢大家!

最佳答案

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

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

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

关于java - 一般来说,我应该编写节省内存的代码还是节省智能手机应用程序简单对象处理时间的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4052010/

相关文章:

java - 如何确保url中没有任何参数?

iOS 后台获取模式可用于安排将来某些实际上并不获取远程数据的操作?

ios - 在 iPhone 设备上测试时 POST 请求超时

android - 将自定义应用程序与 InstrumentationTestCase 一起使用

java - 限制调用 Spring Boot Rest 端点,直到完成从数据库的映射

java - 为什么循环从对象数组中打印相同的内容?

iphone - 如何使带有 UIPageViewController 点的底部栏半透明?

android - Koin 构造函数注入(inject)少量参数 MVVM Android 架构

android - 在多模块项目android中集成onesignal

java - 使用 Maven 进行包编译?