Java 在移动应用程序中什么是重要的?内存优化还是快速执行

Java 在移动应用程序中什么是重要的?内存优化还是快速执行,java,android,memory,time,Java,Android,Memory,Time,这是一个关于学习内存优化和代码优化以更快执行的开放问题。在这两者中,你认为什么更重要 您通常如何优化代码以有效使用内存 如何优化代码以更快地运行 作为一个移动开发者,我们必须重视正确使用内存。但有时使用它通常会因为创建更多的对象或内存利用不足而适得其反 优化内存和减少应用程序运行时间的常用方法是什么?这两者并不相互排斥。高效的代码运行速度更快,占用的内存更少。句号。这是一个很难回答的问题。这个问题没有一般的答案,这取决于你的优先次序。对于某些应用程序(国际象棋程序),效率是最重要的,对于某些应用

这是一个关于学习内存优化和代码优化以更快执行的开放问题。在这两者中,你认为什么更重要

您通常如何优化代码以有效使用内存

如何优化代码以更快地运行

作为一个移动开发者,我们必须重视正确使用内存。但有时使用它通常会因为创建更多的对象或内存利用不足而适得其反


优化内存和减少应用程序运行时间的常用方法是什么?

这两者并不相互排斥。高效的代码运行速度更快,占用的内存更少。句号。

这是一个很难回答的问题。这个问题没有一般的答案,这取决于你的优先次序。对于某些应用程序(国际象棋程序),效率是最重要的,对于某些应用程序(gallery应用程序),内存使用是最重要的。然而,通常情况下,这两者都不是瓶颈。在这种情况下,您应该选择最干净、最容易维护的方式

然而,根据我的经验,大多数时候是内存造成了Android上的瓶颈(如果有的话)。在
StackOverflow
上,我每天都会看到一些关于
OutOfMemory
错误的帖子,我很少看到
我的应用程序运行太慢的帖子

以下是我想到的一些具体建议:

1)呼叫

bitmap.recycle();
只要不需要
位图
。这样可以更早地释放内存

2) 尽量避免访问文件。使用SQLite db可以帮助您以更高效的方式实现这一点

3) 不要泄露内存。使用eclipse附带的内存管理工具来跟踪这些泄漏

4) 把大文件分块交,把小文件分块交

5) 在“android内存管理”中查看此项。它提供了大量有用的信息


这里也有类似的讨论:(注意,它不是专门针对android的)

-1在许多情况下,您无法同时实现这两个目标。例如,图像/视频压缩。或者想象有一个100MB的文件需要处理。您可以立即加载并处理文件(=更快,内存使用率更高),也可以逐块加载并处理文件(=更慢,内存使用率更低),我不这么认为。我反对“这两者不是互斥的”和“高效的代码
会运行得更快,占用更少的内存。”只要在你的答案开头加上“通常”,我100%同意你的观点:)我想Berg413就在这里。例外情况总是存在,但不应泛化,因为这里提出的问题是针对一般移动应用程序的,所以我们可以用一般术语给出答案。@SBerg413实际上,对于某些输入X,最佳算法会为您提供最佳执行时间。然而,在许多情况下,操纵输入的大小可以使算法执行得更好。投票赞成结束问题。代码可以针对速度、资源消耗或两者进行优化。几乎总是有一个权衡;只有极少数情况下,这两个方面的优化最终都是最快的,或者资源消耗最低。这个问题在我看来过于宽泛,答案取决于你的优先级。我同意这个问题是从一个广泛的角度出发的。异步任务之类的方法可以减少时间因素。甚至使用hashmap进行比较也被认为更快。我想知道的是,有没有更有效的方法来改进代码。