32位和64位android系统的mmap限制

时间:2017-04-27 10:19:12

标签: android operating-system filesystems

对32位和64位android系统的mmap限制​​,如果32位android设备有超过3 GB的RAM内存,是否可以一次mmap 2.5 GB文件?假设连续内存可用。我尝试为2.5 gb文件分配mmap,它可以在带有arm64-v8a的64位设备上运行,但是如果我尝试在32位设备armeabi-v7a中执行相同操作,我就没有内存,即使我需要自由连续空间。

编辑:添加了流程图,在这里你可以看到堆后有2.7 GB的空间。

00008000-000b7000 r-xp 00000000 00:02 12817      /sbin/adbd
000b7000-000bb000 r--p 000ae000 00:02 12817      /sbin/adbd
000bb000-000bc000 rw-p 000b2000 00:02 12817      /sbin/adbd
000bc000-000be000 rw-p 00000000 00:00 0 
000be000-000bf000 r--p 00000000 00:00 0 
000bf000-000c2000 rw-p 00000000 00:00 0          [heap]
ad381000-ad382000 ---p 00000000 00:00 0          [anon:thread stack guard page]
ad382000-ad480000 rw-p 00000000 00:00 0          [stack:478]
ad480000-ae800000 rw-p 00000000 00:00 0          [anon:libc_malloc]
ae800000-aea00000 rw-p 00000000 00:00 0          [anon:libc_malloc]
aea02000-aea03000 ---p 00000000 00:00 0          [anon:thread stack guard page]
aea03000-aeb01000 rw-p 00000000 00:00 0          [stack:476]
aeb01000-aeb02000 ---p 00000000 00:00 0          [anon:thread stack guard page]
aeb02000-aec00000 rw-p 00000000 00:00 0          [stack:475]
aec00000-aec80000 rw-p 00000000 00:00 0          [anon:libc_malloc]
aecc1000-aece1000 r--s 00000000 00:0d 14019      /dev/__properties__/u:object_r:debug_prop:s0
aece1000-aece2000 ---p 00000000 00:00 0          [anon:thread stack guard page]
aece2000-aede0000 rw-p 00000000 00:00 0          [stack:474]
aede0000-aee00000 r--s 00000000 00:0d 14013      /dev/__properties__/u:object_r:shell_prop:s0
aee00000-aef00000 rw-p 00000000 00:00 0          [anon:libc_malloc]
aef0e000-aef0f000 ---p 00000000 00:00 0          [anon:thread signal stack guard page]
aef0f000-aef11000 rw-p 00000000 00:00 0          [anon:thread signal stack]
aef11000-aef12000 ---p 00000000 00:00 0          [anon:thread signal stack guard page]
aef12000-aef14000 rw-p 00000000 00:00 0          [anon:thread signal stack]
aef14000-aef15000 ---p 00000000 00:00 0          [anon:thread signal stack guard page]
aef15000-aef17000 rw-p 00000000 00:00 0          [anon:thread signal stack]
aef17000-aef18000 ---p 00000000 00:00 0          [anon:thread signal stack guard page]
aef18000-aef1a000 rw-p 00000000 00:00 0          [anon:thread signal stack]
aef1a000-aef3a000 r--s 00000000 00:0d 14003      /dev/__properties__/u:object_r:default_prop:s0
aef3a000-aef3b000 r--p 00000000 00:00 0          [anon:atexit handlers]
aef3b000-aef5b000 r--s 00000000 00:0d 14030      /dev/__properties__/properties_serial
aef5b000-aef5c000 ---p 00000000 00:00 0          [anon:thread signal stack guard page]
aef5c000-aef5e000 rw-p 00000000 00:00 0          [anon:thread signal stack]
bed80000-beda1000 rw-p 00000000 00:00 0          [stack]
bee73000-bee74000 r-xp 00000000 00:00 0          [sigpage]
ffff0000-ffff1000 r-xp 00000000 00:00 0          [vectors]

0 个答案:

没有答案