我正在寻找有关移动设备上内存使用的一些建议,特别是BlackBerry。使用一些分析工具,我们计算出RAM中的工作集大小为525kb。问题是我们真的不知道这是可以接受还是太高?
任何人都可以了解自己在BlackBerry上使用内存的经验吗?我们应该以什么样的数字为目标?
我也想知道我们应该特别注意哪些事情以减少内存使用。
答案 0 :(得分:3)
512KB在当前一代黑莓手机设备上完全可以接受。您可以查看JBenchmark以查看每个模型可以获得的确切JVM堆,但当前的设备都没有低于20MB的堆。大多数比这大得多。
在JBenchmark上,您可以从页面右侧的下拉菜单中选择您感兴趣的设备。然后,导航到设备的JVM选项卡。
当涉及到减少内存使用时,如果您确实内联525K,我不会担心此应用程序使用的总字节数,只需要分配/重新分配的频率。尝试尽可能地池化/重用对象,避免任何不必要的分配。例如,使用StringBuffer类来连接字符串而不是运算符,因为将使用运算符为每个串联创建多个String对象,其中StringBuffer将字符放入数组中,并且仅在需要时展开。谷歌是寻找更多提示的好方法。
最后,依靠BlackBerry JDE所具有的分析工具,是了解如何优化堆内存使用的一个非常重要的部分。
答案 1 :(得分:1)
如果我没弄错的话,Blackberry应用程序是用Java编写的......这是一个托管环境,这意味着使用更少内存的唯一可靠方法就是创建更少的对象。我认为,你可以对你的工作集做很多事情,因为它是由运行时管理的(实际上可能就是在像这样的设备上使用Java)。