gpt4 book ai didi

ios - vm_allocate之后释放内存

转载 作者:行者123 更新时间:2023-12-01 16:35:26 30 4
gpt4 key购买 nike

我想创建一个大的,连续的,部分驻留的地址空间区域。

我正在使用vm_allocate在我的iOS应用程序中分配很大的区域。 iOS会自动为我找到一个合适的连续大的未使用地址空间区域,并向我提供一个指向该区域的指针,这很好。

然后,iOS会在我写入时自动为其提供物理内存页面支持,因此我的应用程序的物理内存使用量开始很小,并且会随着时间的增长而增加。到目前为止,一切都很好。

有时我会暂时停止使用此存储区的一部分。我的应用程序跟踪给定时间实际使用该区域的哪些部分,哪些没有使用。但是,我似乎无法确定将这些信息传递给OS的方法,因此我永远无法缩小应用程序的物理内存使用率(例如,响应于内存不足警告)。

在其他不太魔术的环境中,此代码库保留地址空间的连续块,然后根据需要手动附加和分离物理页面。

我是否缺少一些重要的Apple文档? -是否可以使用类似的API代替vm_allocate来实现此目的?或者,是否可以将vm_allocate d地址空间的页面放回其初始的“未初始化,并在下次写入时自动映射”状态?

最佳答案

kern_return_t kr;
unsigned int nbytes = yourMemroySize;
unsigned int address ;

vm_deallocate(mach_task_self(),address, nbytes);

我已经使用此代码释放内存,它可以正常工作。我知道这是非常非常晚的答案,我希望它将使用某个代码。

关于ios - vm_allocate之后释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28742530/

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