Android LowMemoryKiller未能杀死Webviews

Android LowMemoryKiller未能杀死Webviews,第1张

概述很长一段时间以来,我一直在尝试在玩重型游戏时在我的设备上调试主要的延迟/口吃爆发.在分析了我的logcat之后,我觉得我已经确定了导致难以忍受的滞后峰值的原因.每当出现滞后峰值时,logcat中始终显示以下错误:E/lowmemorykiller:Erroropening/dev/memcg/apps/uid_99032/pid_54

很长一段时间以来,我一直在尝试在玩重型游戏时在我的设备上调试主要的延迟/口吃爆发.在分析了我的logcat之后,我觉得我已经确定了导致难以忍受的滞后峰值的原因.每当出现滞后峰值时,logcat中始终显示以下错误:

E/lowmemorykiller: Error opening /dev/memcg/apps/uID_99032/pID_5430/memory.soft_limit_in_bytes; errno=2

它被反复显示,好像它一直在试图杀死它. UID和PID有时会有所不同.据推测,主线程每次尝试杀死它时都会挂起很短的时间但是没有这样做.为什么会这样?

以下错误也会重复显示,并在上述错误中混合出来.它可能与问题有关:

E/ANDR-PERF-RESOURCEQS: Failed to apply optimization [4,0]

有时它会[2,0]而不是[4,0].这些消息在我的logcat中显示得非常过分.

检查我的活动进程后,提到的UID和PID始终与AndroID System WebvIEw的实例匹配.我通过在“设置”中的“开发者选项”中的“运行进程”找到了这些进程的源应用程序.在那里,正在运行的进程被列为com.Google.androID.webvIEw:sandBoxed_process0,并且对于每个具有正在运行的webvIEw的应用程序,它有多个实例.通过检查该进程的信息,可以提到它启动了什么包.因此,它们源自我手机上的各种各样的应用程序,有时甚至是我自己玩的游戏.因此,这似乎是内核的lowmemorykiller(LMK)模块的问题,比我安装的任何特定应用程序更可能.

任何人都有任何想法导致这种情况,错误的真正含义,如何解决或解决它,为什么LMK无法杀死webvIEws,或者实际发生了什么?我至少在寻找一种控制LMK的方法,要么忽略试图杀死webvIEws,要么防止它在失败时挂掉主线程,要么强迫它成功杀死它们.

由于某些原因,我没有在内核Adiutor中修改LMK参数的部分.我的手机正试图(可能)杀死这些网页浏览,即使仍然有大量的可用内存,但内核Adiutor中的min_free参数远远不及我当时留下的可用内存量,所以有些东西是继续

我曾经怀疑过,这可能是因为手机上安装了大量已安装的应用程序(800-900).我已经将它降低到约600个应用程序,问题仍然存在.我不认为有太多的应用程序是问题,虽然它肯定可以.

我在我的OnePlus 3T上运行official ResurrectionRemix 8.1 ROM,带有ROM的默认内核和固件.这个问题出现在非官方的RR LuisROM上,并且即使在我完全擦除/干净闪光到我目前正在使用的官方RR版本之后仍然存在.我已经向他们和XDA的其他人寻求过帮助,但没有人愿意提供帮助.如果您认为有必要,我可以提供我的完整logcat,但是这里直接提到了唯一相关的消息.

编辑:这是一个latest logcat,错误及以上.我不认为可以从中推断出任何有用/新的东西,但请随意看看.

编辑2:感谢this answer,它提供了一个临时的解决方法,我一直在尝试并试图找到问题的根源.看起来由于某种原因,仅在Web视图进程的dev / memcg / apps文件夹中不创建UID和PID文件夹.这真的很奇怪.它们可以在su终端中手动创建(和删除)(虽然只在ES文件浏览器专业版的根特权文件管理器中创建,而不是删除(它给出了’权限被拒绝’的相同错误),但我注意到了在上面其他错误之前的logcat中出现以下错误:

Failed to make and chown /acct/uID_99007: Permission denIEd

这似乎与dev / memcg / apps目录具有相同的权限问题.我已经运行了chown 777 dev / memcg -R以确保所有文件和目录都具有RWX权限,因此我看不出错误是如何发生的.什么可以阻止它?

解决方法:

我读了整个问题.我认为在玩重型游戏或使用任何需要更高RAM内存的应用程序时,其他一些过程会限制它这样做,就像信号量一样.
因为您的错误说它无法打开

/dev/memcg/apps/uID_99032/pID_5430/memory.soft_limit_in_bytes

用于增加使用记忆.

有关memory.soft_limit_in_bytes的更多信息,请参阅有关内核的此文档

https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt

你能给我一个logcat所以我可以进一步分析这个问题吗?

总结

以上是内存溢出为你收集整理的Android LowMemoryKiller未能杀死Webviews全部内容,希望文章能够帮你解决Android LowMemoryKiller未能杀死Webviews所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存