other mmap
时间: 2023-08-23 11:07:28 浏览: 83
引用中的smap文件中,可以看到其他mmap的大小为55,占用的内存为16,脏页为32。其他mmap是指除了Cursor, Ashmem, .so mmap, .jar mmap, .apk mmap, .ttf mmap, .dex mmap以及未知部分之外的其他内存映射。根据引用中的解释,Shared clean表示多个进程共享的干净的数据,而Private clean表示当前进程特有的干净数据。所以,other mmap中的数据既不属于共享的so库,也不是当前进程特有的数据段。
相关问题
Pss Private Private Swap Heap Heap Heap Total Dirty Clean Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ ------ Native Heap 71063 70996 0 0 79956 76480 3475 Dalvik Heap 20947 20888 0 0 21407 15263 6144 Dalvik Other 1845 1840 0 0 Stack 60 60 0 0 Ashmem 2 0 0 0 Gfx dev 80712 80712 0 0 Other dev 21 0 20 0 .so mmap 34338 1508 28900 0 .jar mmap 1243 0 0 0 .apk mmap 809 0 0 0 .ttf mmap 38 0 0 0 .dex mmap 16890 4 16884 0 .oat mmap 982 0 0 0 .art mmap 1701 1280 16 0 Other mmap 1607 156 372 0 EGL mtrack 25404 25404 0 0 GL mtrack 1152 1152 0 0 Unknown 2578 2552 0 0 TOTAL 261392 206552 46192 0 101363 91743 9619
这是一个 Android 应用程序的内存使用情况输出,其中:
- Pss 表示应用程序的实际内存使用量;
- Private Dirty 表示应用程序的私有内存使用量;
- Private Clean 表示应用程序的私有干净内存使用量;
- Swap 表示应用程序的交换内存使用量;
- Heap Size 表示应用程序的堆内存总大小;
- Heap Alloc 表示应用程序的堆内存已分配大小;
- Heap Free 表示应用程序的堆内存未分配大小。
具体来说,输出结果中的各字段含义如下:
- Native Heap 表示应用程序的本地堆内存使用情况,其中 Pss 表示实际内存使用量,Private 表示私有内存使用量,Private Clean 和 Private Dirty 分别表示私有干净内存和私有脏内存使用量;
- Dalvik Heap 表示应用程序的 Dalvik 堆内存使用情况,其中 Pss 表示实际内存使用量,Private 表示私有内存使用量,Private Clean 和 Private Dirty 分别表示私有干净内存和私有脏内存使用量;
- Dalvik Other 表示应用程序的 Dalvik 其他内存使用情况,其中 Pss 表示实际内存使用量,Private 表示私有内存使用量;
- Stack、Ashmem、Gfx dev、Other dev、.so mmap、.jar mmap、.apk mmap、.ttf mmap、.dex mmap、.oat mmap、.art mmap、Other mmap、EGL mtrack、GL mtrack、Unknown 分别表示应用程序的栈内存、匿名共享内存、图形设备显存、其他设备显存、共享库内存、Java 包文件内存、安装包文件内存、字体文件内存、Dalvik 可执行文件内存、OAT 可执行文件内存、ART 可执行文件内存、其他内存、EGL 内存跟踪、GL 内存跟踪、未知内存的使用情况,其中 Pss 表示实际内存使用量,Private 和 Private Dirty 表示私有内存使用量;
- TOTAL 表示应用程序的总内存使用情况,其中 Pss 表示实际内存使用量,Private 和 Private Dirty 分别表示私有内存使用量,Clean 表示干净内存使用量,Swap 表示交换内存使用量,Heap Size、Heap Alloc 和 Heap Free 分别表示堆内存总大小、已分配大小和未分配大小。
mmap failed
***种原因。根据引用,在Linux环境下,mmap是一种文件访问的优化手段。当系统限制进程可使用的mmap数量达到上限时,会导致mmap失败。为了解决这个问题,可以通过调整系统参数来增加可使用的mmap数量,具体的调整方式是编辑/etc/sysctl.conf文件并添加以下内容:vm.max_map_count = 1048575。这样可以扩大可使用的mmap数量,从而解决mmap失败的问题。
另外,根据引用,当mmap函数发生错误时,它会返回MAP_FAILED或-1。所以在代码中,应该检查mmap函数的返回值是否为0来判断是否发生错误。
此外,引用还提到了可能由于文件只读却在mmap中使用了PROT_READ | PROT_WRITE(读写)而导致mmap失败的情况。因此,在使用mmap时应确保文件的读写权限与mmap的参数相匹配,以避免mmap失败。
总结起来,mmap失败可能是因为系统限制了可使用的mmap数量,解决方法是调整系统参数。另外,在代码中应该检查mmap函数的返回值是否为0,以判断是否发生错误。此外,还应确保文件的读写权限与mmap的参数相匹配,以避免mmap失败。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [记Cassandra的OOM问题分析和解决(mmap failed)](https://blog.csdn.net/u013887254/article/details/107809312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [简单的shell脚本来检测mmap()返回值的错误检查-C/C++开发](https://download.csdn.net/download/weixin_42140710/19108465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [mmap失败时原因](https://blog.csdn.net/qq_16097611/article/details/51916275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]