在 Activity 监视器中释放更多非活动或文件缓存内存
Free up more Inactive or File Cache memory in Activity Monitor
我发现一个应用程序具有清理内存功能。
我认为它使用了原始的 PURGE 功能,但在检查后(使用 Activity Monitor),我发现它可能比 Purge 命令更空闲的文件缓存(或者它可以独立于 PURGE 操作命令)。请参考下面我的实验。
- 下面是Activity监控
中的第一个信息
- 然后,我使用清理内存功能(释放 600+ MB 文件缓存)
- 最后,我使用 PURGE 命令(释放更多 400+ MB 文件缓存)
我的问题:
参考 free mem as function of command 'purge'
1. Clean Memory功能是用什么技术做的(研究了https://opensource.apple.com/一个星期没找到相关资料)?
2.(选填)Clean Memory函数和PURGE命令的区别?
Memory Clean 应用程序所做的似乎只是分配和释放内存。如果您有 Xcode,您可以 运行 仪器并跟踪内存清理的分配。一旦您点击 "Clean Memory" 按钮,您将在 Instruments 中看到分配的 "Total Bytes" 与 Memory Clean 中显示的 "free memory available" 几乎相同。您也可以在 Activity 监视器中看到相同的内容。
关于purge
命令,似乎使用了不同的机制。用 dtruss
(dtruss purge
) 跟踪它在最后一行显示以下结果:
vfs_purge(0x7FFF5320CDE8, 0x7FFF5320CDF8, 0x7FFF5320CE48) = 0 0
根据 vfs_syscalls 的来源,更具体地说是评论:
/*
* Purge buffer cache for simulating cold starts
*/
不用说,清除文件缓存是个坏主意,它只有一个好的应用程序——基准磁盘。
我找到了解决方案。
创建数据然后释放它很简单。
我发现一个应用程序具有清理内存功能。
我认为它使用了原始的 PURGE 功能,但在检查后(使用 Activity Monitor),我发现它可能比 Purge 命令更空闲的文件缓存(或者它可以独立于 PURGE 操作命令)。请参考下面我的实验。
- 下面是Activity监控 中的第一个信息
- 然后,我使用清理内存功能(释放 600+ MB 文件缓存)
- 最后,我使用 PURGE 命令(释放更多 400+ MB 文件缓存)
我的问题:
参考 free mem as function of command 'purge'
1. Clean Memory功能是用什么技术做的(研究了https://opensource.apple.com/一个星期没找到相关资料)?
2.(选填)Clean Memory函数和PURGE命令的区别?
Memory Clean 应用程序所做的似乎只是分配和释放内存。如果您有 Xcode,您可以 运行 仪器并跟踪内存清理的分配。一旦您点击 "Clean Memory" 按钮,您将在 Instruments 中看到分配的 "Total Bytes" 与 Memory Clean 中显示的 "free memory available" 几乎相同。您也可以在 Activity 监视器中看到相同的内容。
关于purge
命令,似乎使用了不同的机制。用 dtruss
(dtruss purge
) 跟踪它在最后一行显示以下结果:
vfs_purge(0x7FFF5320CDE8, 0x7FFF5320CDF8, 0x7FFF5320CE48) = 0 0
根据 vfs_syscalls 的来源,更具体地说是评论:
/* * Purge buffer cache for simulating cold starts */
不用说,清除文件缓存是个坏主意,它只有一个好的应用程序——基准磁盘。
我找到了解决方案。
创建数据然后释放它很简单。