MIUI 最近任务显示的剩余内存与实际不符

2019-06-29 13:52:57 +08:00
 blindmt

自从 QQ 换用 TIM 之后频繁感觉 TIM 被杀进程。但每次打开最近任务显示内存剩余都在 3G 左右,很奇怪,起初以为是 MIUI 没有像微信和 QQ 那样专门做进程优先级保护的原因,今天无聊打开了 CPU-Z 发现这么一个坑爹的东西。

机器:小米 9 8G+128G

在最近任务里可以看到剩余内存是 3G,但是在 CPU-Z 和 AIDA64 中显示就只有 1500+M。 更夸张的是,adb 连上 shell 之后发现 top 命令里实际的显示只有约 300M。

最近任务 https://i.loli.net/2019/06/29/5d16fb135fc2e82993.jpg

adb shell top https://i.loli.net/2019/06/29/5d16f843eef9083180.png

所以即便是所谓本地化优秀的国产 UI,也只是在保护了特定(常用)的(毒瘤)进程的基础上,在伪造一个流畅的国产安卓吗?

9325 次点击
所在节点    Android
35 条回复
Stevenv
2019-06-29 14:08:13 +08:00
你去开发者模式看正在运行的服务
blindmt
2019-06-29 14:11:43 +08:00
@Stevenv 没找到,可能 MIUI 阉割了这个
easylee
2019-06-29 14:17:54 +08:00
对于最后的猜想,我也有持相同的意见。
而且一直想吐槽`安卓`明显的动画不流畅。

16 年上半年乐 mex2,ram 空闲 3g,但是一直杀后台,还动不动开应用就黑屏,记这么清楚不是因为只遇见过这一款手机,也不是因为 17 年乐视手机业务就黄了,而是特么当时将近 3k 买的乐视 max2,流畅度竟然比不上不到 2k 的 3g 运存的小米 5.....
love
2019-06-29 14:28:56 +08:00
miui 动不动就杀进程从小米 2 就开始了

当年我米 2 用 MIUI 简直要崩,老是程序重新加载,换了原生系统后完全就没这问题了
aheadlead
2019-06-29 14:36:17 +08:00
这几个途径看到的可用内存统计口径都不一样。只是取决于你更相信哪个罢了…
iwtbauh
2019-06-29 14:37:22 +08:00
Android 确实非常吃内存,Google 系的软件都这个吊样。

不过使用率这么夸张,我感觉可能是某个系统程序内存泄漏了,关机,移除电池,等待 10 分钟后插入电池,然后开机,观察内存使用率。
iwtbauh
2019-06-29 14:41:49 +08:00
还有,装个 termux 调用 free -m 命令比较好,adb 也非常吃内存(反正我是服了一个和主机通信的软件能随便吃几百 mib )
oneonesv
2019-06-29 14:44:38 +08:00
top 这个命令统计的内存可不是 ‘准确’ 的
MIUI 显示的不一定是不准确的

https://blog.csdn.net/cmdssd1/article/details/51841255
oneonesv
2019-06-29 14:46:41 +08:00
先搞明白再说
不要搞大新闻
qiaoguoqiang
2019-06-29 14:46:42 +08:00
显示的不一定是真实的,都是厂商为了凸显自己的手机剩余内存高随便显示的,声称 8+128,会真的有 8G 吗?
iwtbauh
2019-06-29 15:01:04 +08:00
@oneonesv #8

这篇文章根本和这个帖子没关系。文章强调内存占用不是进程占用之和,再就是需要去掉缓存和缓冲的大小。但 1 ) lz 也没有算进程的占用之和,2 )你可以看看图,cached 和 buffers 都很低,used 减去这两项后依旧非常恐怖。

top 和 free 的内存统计数据来自 /proc/meminfo
willie1991
2019-06-29 15:08:14 +08:00
以 speed 模式优化全部应用后你会发现内存多了好多。。我没弄之前 8 个的内存只剩下 1g 的样子,优化完之后,开机很久照样还有接近 3g 内存
oneonesv
2019-06-29 15:33:56 +08:00
@iwtbauh 我是说这几种方式统计方式都不一样,/proc/meminfo 也不包含所有内存,linux 也没法精确统计
MIUI 多半用了数字好看的统计方式,但也不能说他作假
chiu
2019-06-29 15:36:01 +08:00
电池使用记录和一个 app 后台记录的也不符
A18524478970
2019-06-29 15:48:25 +08:00
显示的只是正在使用的缓存而已,不要大惊小怪,作假是基本没可能的
Chairs0
2019-06-29 19:37:23 +08:00
miui 有 zram,是时刻在转换
iwtbauh
2019-06-29 19:57:47 +08:00
@oneonesv #15

惊了,原来 /proc/meminfo 只能显示系统的一部分内存呀,黑客设计一个不能完全显示内存的接口,我不知道那个 Linux 黑客有这么糟糕的品位。哇,原来 Linux 自己都不能精确统计内存,按你的意思,也就是说假定存在内存页 P,则 Linux 不能确定它是否可用。那系统应该很快就不稳定甚至无法工作了呀,最好也是严重内存泄漏了呀。但实际上 Linux 跑的很稳,7*24 工作不在话下。

我从来没说过 MIUI 造假,因为软件是分层的,底层看不到上层的结构和细节是正常的。内核层次上看不到 Android 服务层的内存管理很正常。

但是你给的那个链接完全和这个帖子没有半点关系。你贴的那个文章说了半天废话那些东西在手册里都有写。什么叫“不包含所有内存”啊。不看手册怪软件喽。谁不知道 avail mem = free mem + buff/cache 啊。谁不知道 virt 和 res 啊。还有到你的#13 竟然成了 Linux 不能精确统计内存了……
a22124497
2019-06-29 20:07:44 +08:00
@iwtbauh 总结:主要是你不会,不是系统不行,哈哈
ssynhtn
2019-06-29 20:31:27 +08:00
不用纠结了,MIUI 是我用过的性能最垃圾的安卓 ROM
iwtbauh
2019-06-29 20:45:49 +08:00
@a22124497 #18 并非这个意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578527

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX