gpt4 book ai didi

ios - 内存映射文件和低内存场景

转载 作者:IT王子 更新时间:2023-10-29 07:41:33 26 4
gpt4 key购买 nike

在低内存场景下,iOS平台如何处理内存映射文件?我所说的低内存场景是指当操作系统向应用程序中的所有观察者发送 UIApplicationDidReceiveMemoryWarningNotification 通知时。

我们的文件使用 +[NSData dataWithContentsOfMappedFile:] 映射到内存中,其文档说明:

A mapped file uses virtual memory techniques to avoid copying pages of the file into memory until they are actually needed.

这是否意味着操作系统也会在页面不再使用时取消映射?是否可以将页面标记为不再使用?如果场景发生变化,则此数据是只读的。如果我们直接使用 mmap() 怎么样?这样会更好吗?

最佳答案

内存映射文件每次将数据从磁盘复制到内存中一页。未使用的页面可以自由换出,与任何其他虚拟内存一样,除非它们已使用 mlock(2) 连接到物理内存中。内存映射决定了将什么从磁盘复制到内存以及何时复制到操作系统。

从 Foundation 级别下降到 BSD 级别以使用 mmap 不太可能产生太大的不同,除了使必须与其他 Foundation 代码接口(interface)的代码更加笨拙之外。

关于ios - 内存映射文件和低内存场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6172919/

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