【发布时间】:2023-04-09 13:47:01
【问题描述】:
我正在开发一个 Android 应用程序。应用程序的主要要求是它在内存方面应该是高效的。那么,我应该选择哪一个呢?
String batterylevel;
batterylevel = Float.toString(batteryPct);
或
char batterylevel[];
batterylevel = Float.toString(batteryPct).toCharArray();
【问题讨论】:
-
您多久检查一次电池电量,这样每次检查约 16 个字节会产生明显差异?
-
有一个刷新按钮可以刷新电池电量。所以,这完全取决于用户。不过,没有明显的区别。
-
Android 系统可能分配了更多的内存,只是为了在用户单击按钮时使按钮变为橙色。您对内存使用的关注程度如何? (而当 Android 应用程序出现内存问题时,通常是由于加载了 兆字节 的图像)
-
嗯,我只关心 20 个字符串。我认为每当创建 String 类的对象时也会分配实例变量。 20 个这样的案例会产生巨大的影响吗?
-
每个字符串 3 个额外的 int 字段(32 位)+ 1 个引用(64 位)= 12+8 = 20。20 * 20 = 额外 400 个字节。您将节省惊人的 0.0004 兆字节。我认为您正在寻求优化一些根本不值得的东西。还要注意 toCharArray 调用创建了原始字符串内部缓冲区的副本。这意味着只要垃圾收集器不会释放您实际使用更多内存的内存(阅读:双倍内存)。我建议你只使用 String 方法。
标签: java android arrays string