mmap()
我对如何在 iOS 或 OSX 上使用框架感到有些困惑。
如果一个文件被映射到虚拟内存,mmap()
并且从它请求数据,内核将数据中的数据页分配到 RAM。这实际上如何影响创建对象的方式?
alloc
如果通常使用/创建对象init
,则分配内存块并启动对象。但是,如果数据驻留在虚拟内存中,在mmap
'ed 文件中呢?是否alloc
需要在对象上调用?为对象分配的内存是否被虚拟内存中的数据填充?或者是否跳过alloc
调用并只是将指针传递给虚拟内存中的数据?
例如图像或声音文件,如果我知道文件在虚拟内存中的位置,我将如何设置对象?
如果分配数据,如果数据已经分页到 RAM 中,它不会被复制吗?
我在想,使用来自虚拟地址的内存将消除在堆上分配的需要。