Java android设备上的空闲内存消耗更少的电量吗?

Java android设备上的空闲内存消耗更少的电量吗?,java,android,memory,ram,battery,Java,Android,Memory,Ram,Battery,例如,我们有两个相同的android设备,每个设备都有2GB内存(依赖于能量的内存) 设备1:1GB RAM因运行应用程序而忙,1GB RAM空闲 设备2:2GB RAM因运行应用程序而忙 假设运行的应用程序没有使用CPU,或者只使用了一点点。内存也保持不变(不经常重写)。设备2会比设备1更快地失去电源(电池电量为0%)吗 请向我解释这个问题,我真的很好奇java android的内存使用情况。这个概念很简单 无论是设备(手机、笔记本电脑)还是平台(android、windows、ios),软件

例如,我们有两个相同的android设备,每个设备都有2GB内存(依赖于能量的内存)

设备1:1GB RAM因运行应用程序而忙,1GB RAM空闲

设备2:2GB RAM因运行应用程序而忙

假设运行的应用程序没有使用CPU,或者只使用了一点点。内存也保持不变(不经常重写)。设备2会比设备1更快地失去电源(电池电量为0%)吗


请向我解释这个问题,我真的很好奇java android的内存使用情况。

这个概念很简单

无论是设备(手机、笔记本电脑)还是平台(android、windows、ios),软件/应用程序都不会耗尽电池电量。它的cpu和gpu消耗电池电量


因此,运行的应用程序越多,cpu和gpu的使用就会越多,因此会消耗更多的电池。

这个概念很简单

无论是设备(手机、笔记本电脑)还是平台(android、windows、ios),软件/应用程序都不会耗尽电池电量。它的cpu和gpu消耗电池电量

因此,运行的应用程序越多,cpu和gpu的使用就会越多,因此会消耗更多的电池。

根据数据,DRAM的功耗取决于时钟速度,以及内存是在使用还是在闲置。这并不意味着作为一名开发人员,您需要关心这一点,因为其他因素对能耗的影响远大于内存的使用。

根据数据,DRAM的功耗取决于时钟速度,以及内存是在使用中还是在闲置。这并不意味着这是作为一名开发人员需要关心的事情,因为其他因素对能耗的影响远大于内存使用量。

简单的答案是:不

让我们反复讨论使用更少内存可能会降低功耗的选项:

最现实的情况是,拥有更多可用内存意味着更多的磁盘/闪存卡缓存命中,从而减少对这些耗电设备的访问。更多的内存也意味着更少的运行GC的动机,这节省了CPU时间(如果您的系统使用swap/zram,则成本可能会更高,因为大多数手机都没有swap)。您可能会在这里节省一些电力

另一个选择是,手机有更多的内存芯片,内核足够智能,可以压缩内存,并使未使用的芯片闲置。这项技术就在这里,用于服务器中RAM的热交换,但我还没有听说过手机使用它

最后,您可能会确信,在内存中保留零的成本可能比保留随机数据(RAM必须定期刷新其内容)要低。让我们在3GB内存的笔记本电脑上做一些疯狂的测试。免费给我们:

total used free shared buffers cached Mem: 3077800 2760220 317580 40308 219036 1137020 -/+ buffers/cache: 1404164 1673636 Swap: 2047996 7492 2040504 缓存的可用共享缓冲区总数 成员:3077800 2760220 317580 40308 219036 1137020 -/+缓冲区/缓存:1404164 1673636 掉期:2047996 7492 2040504 在/dev/kmem中计算满是零的页面会得到:Zeroed=34,used=786398。让我们尝试删除缓存:

sync && echo 3 > /proc/sys/vm/drop_caches && free total used free shared buffers cached Mem: 3077800 1686792 1391008 44884 1248 326864 -/+ buffers/cache: 1358680 1719120 Swap: 2047996 7492 2040504 同步和回显3>/proc/sys/vm/drop\u缓存和免费 缓存的可用共享缓冲区总数 成员:3077800 1686792 1391008 44884 1248 3268664 -/+缓冲区/高速缓存:1358680 1719120 掉期:2047996 7492 2040504 结果保持不变:归零=34,使用=786398。Linux不会将可用内存归零,在现代内核上可能不会有很多页面充满了零,因为它们都映射到相同的物理内存。这种机制被称为零页()

简单的答案是:不

让我们反复讨论使用更少内存可能会降低功耗的选项:

最现实的情况是,拥有更多可用内存意味着更多的磁盘/闪存卡缓存命中,从而减少对这些耗电设备的访问。更多的内存也意味着更少的运行GC的动机,这节省了CPU时间(如果您的系统使用swap/zram,则成本可能会更高,因为大多数手机都没有swap)。您可能会在这里节省一些电力

另一个选择是,手机有更多的内存芯片,内核足够智能,可以压缩内存,并使未使用的芯片闲置。这项技术就在这里,用于服务器中RAM的热交换,但我还没有听说过手机使用它

最后,您可能会确信,在内存中保留零的成本可能比保留随机数据(RAM必须定期刷新其内容)要低。让我们在3GB内存的笔记本电脑上做一些疯狂的测试。免费给我们:

total used free shared buffers cached Mem: 3077800 2760220 317580 40308 219036 1137020 -/+ buffers/cache: 1404164 1673636 Swap: 2047996 7492 2040504 缓存的可用共享缓冲区总数 成员:3077800 2760220 317580 40308 219036 1137020 -/+缓冲区/缓存:1404164 1673636 掉期:2047996 7492 2040504 在/dev/kmem中计算满是零的页面会得到:Zeroed=34,used=786398。让我们尝试删除缓存:

sync && echo 3 > /proc/sys/vm/drop_caches && free total used free shared buffers cached Mem: 3077800 1686792 1391008 44884 1248 326864 -/+ buffers/cache: 1358680 1719120 Swap: 2047996 7492 2040504 同步和回显3>/proc/sys/vm/drop\u缓存和免费 缓存的可用共享缓冲区总数 成员:3077800 1686792 1391008 44884 1248 3268664 -/+缓冲区/高速缓存:1358680 1719120 掉期:2047996 7492 2040504
结果保持不变:归零=34,使用=786398。Linux不会将可用内存归零,在现代内核上可能不会有很多页面充满了零,因为它们都映射到相同的物理内存。这种机制被称为零页()

你想过垃圾收集器必须运行这么多次吗?让我们忘掉垃圾收集器吧,这不是我好奇的事情:DDoS如果你好奇的话没关系。。。这是一个后台进程,如果它运行得非常频繁,它会耗尽你的电池…你想过垃圾收集器必须运行这么多次吗?让我们忘记它的装束吧