macOS的kernel 您所在的位置:网站首页 openautomatewrapper占用大量内存 macOS的kernel

macOS的kernel

2024-03-04 01:08| 来源: 网络整理| 查看: 265

一、问题描述

在macOS使用时间过久后,会发现kernel_task进程占非常大的“真实内存”,真实内存就是占用的物理内存,因此会让人感觉是内存泄露,浪费macbook本来就很稀缺的内存。

二、原因分析

kernel_task占用的”真实内存“中,其实包含了很多内容,并非内存泄露。经过测试发现,kernel_task中至少存有:App被压缩的内存、部分inactive内存、部分共享内存,因此并非是内存浪费,是很合理的内存利用,要相信稳定版本macOS的内存管理能力。

三、测试过程

 在长时间使用后,kernel_task进程占用真实内存有5GB大小,经过purge命令清楚系统的部分inactive内存,清理后kernel_task缩减到4.14GB,如图所示

由此可见清除的inactive就是kernel_task占用的”真实内存”。

然后关闭开启的占用大量内存(主要是被大量压缩的内存)的进程,进程被关闭后,macOS会吧对应的压缩内存也清除掉,只有部分被关闭App的数据和代码会被系统移动到“已缓存内存”中。当关闭进程后,压缩内存显著降低,此时kernel_task占用的”真实内存“也显著降低,且kernel_task真实内存降幅与压缩内存降幅基本一致,约为1.6GB,可见kernel_task中存有macOS的压缩内存。如图所示

 经过上述试验可见,kernel_task中至少包含:已压缩的内存、部分inactive内存

在活动监视器中打开”所有进程-分层显示“,可见kernel_task进程包含了全部macOS的系统与第三方App进程,因此可见kernel_task是底层的进程,提供了最基本的服务。

四、解决方法

个人认为无需担心kernel_task的内存占用问题,因为它的内存就包含了你App的内存,想要让kernel_task缩小,无非就是关闭App,因此意义不大。

当然有一个方法可以降低一下kernel_task内存占用,就是用purge清除inactive内存,kernel_task内存就会降低。但是inactive是系统自动调度,很快inactive内存在有空余物理内存时,它就会占上来;而且purge指令只能清除部分inactive内存。具体指令如下:

purge



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有