问题描述
在构建应用程序(在我的情况下为 Android)时,您应该编写代码来优化性能还是内存?
例如,假设我正在使用 findViewById(int resid) 方法。
为了优化性能,我只需将视图存储到一个实例变量中,这样我就不需要再次调用它。
为了优化内存,我不会存储它,而是在每次需要再次查找该视图时调用此方法。
当然,还有很多其他的例子,但这是一个总体思路:你应该在每次需要的时候调用相同的方法(从而使用更多的处理),还是将它保存到一个变量中(从而使用更多的内存)?
我做哪一个重要吗? 这个比那个好吗? 谢谢!
1楼
冒着被否决的风险......
这当然取决于,但是对于您的findViewById
示例,您通常应该将结果缓存在成员变量中。
RecyclerView.ViewHolder
的文档鼓励这种模型。
但要小心 - 如果您试图在Fragment
执行此操作(例如,在onCreateView
多次调用findViewById
并缓存结果),那么您会出现泄漏(有很多关于此的文章)。
这种情况下的解决方案是在onDestroyView
中将这些缓存的引用归零