我应该针对移动设备优化性能还是内存?

时间:2017-02-09 00:05:07

标签: java android

在构建应用程序时(在我的情况下是Android),您应该编码以优化性能还是内存?

例如,假设我使用的方法是findViewById(int resid) 为了优化性能,我只是将视图存储到实例变量中,这样我就不需要再次调用它了 为了优化内存,我不会存储它,但每次我需要再次找到该视图时调用此方法。

当然,还有很多其他的例子,但这是一般的想法:你应该在每次需要时调用相同的方法(从而使用更多的处理),或者将它保存到变量(从而使用更多的内存) ?

我做哪一件都很重要?这个比那个好吗?谢谢!

1 个答案:

答案 0 :(得分:0)

冒着被投票的风险......

这一切当然都取决于,但对于findViewById的示例,您通常应该将结果缓存在成员变量中。 RecyclerView.ViewHolder的文档鼓励这种模式。

但请注意 - 如果您尝试在Fragment中执行此操作(例如,在onCreateView多次调用findViewById并且缓存结果),那么您将会泄漏(有关于此的各种文章)。在这种情况下,解决方案是在onDestroyView

中取消这些缓存的引用