gpt4 book ai didi

android - 如何访问类加载器/App Linearalloc 类信息大小?

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:17 31 4
gpt4 key购买 nike

信息:这里应该解决的不是 LinearAlloc 问题!

你好,

我的问题是分析 LinearAlloc exceeded capacity error(1)。虽然我已经有了错误的解决方案,但我仍然需要一种方法来分析正在运行的应用程序的已用大小。我使用的是 Android 4.0.3(无法更新),这意味着容量为 8mb。

错误发生在运行时,因为应用程序/库是动态加载的(2)。在第 306 行的 LinearAlloc.cpp (3) 中,我的解决方案是:

LOGVV("--- old=%d size=%d new=%d", startOffset, size, nextOffset);

如何启用 VeryVerbose 日志级别?

或者

有没有其他方法可以访问bootclasspath classloader header的已用内存大小(见(3))?

也许来自 NDK-Api?

如果我没记错的话,它是类信息的内存。该用法的特定内存正是我要查找的内容。

使用了多少容量以及如何在运行时访问它?

没有必要在代码中访问它我只需要这个值。如果可以从 dumpsys meminfoDDMS 计算它是否也可以解决问题。

不需要root的方案优先!

(1) LinearAlloc exceeded capacity

(2) 不允许发布 3 个链接:google: Custom Classloading Android

(3) LinearAlloc.cpp

编辑:添加 NDK-API 作为可能的解决方案。

附言这是我的第一个问题/帖子,欢迎提出任何改进建议。

最佳答案

据我所知,没有针对 Dalvik LinearAlloc Si​​ze 的 SDK/NDK API。但是您可以通过访问 Linux 接口(interface)/proc//smap 来计算这个大小以获取详细信息。

map :

/dev/ashmem/dalvik-LinearAlloc

在 Dalvik 代码中,此内存最大映射大小为 16M。而这 block 内存是mmap分配的,所以基本 block 是4K。因此,如果您想计算此内存使用量,请使用 RSS @Smap。

关于android - 如何访问类加载器/App Linearalloc 类信息大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308321/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com