|
|
本帖最后由 蓝 色 于 2026-6-30 19:17 编辑
内存压缩(Memory compression)
内存压缩是微软的新内存管理机制,作用是压缩不经常访问的内存页面,以减少对硬盘的读取和写入,我们可以理解为内存压缩就是压缩内存中不常使用的页面文件,使内存占用更少,从而允许操作系统运行更多程序、同时减少对硬盘的读取与写入,带来更高的 I/O 效率能因此提高系统的响应速度。
内存压缩的弊端
压缩数据需要耗费 CPU 资源,一些设备搭载了性能较弱的CPU,开启内存压缩便可能会造成其运行卡顿缓慢。与此同时,内存压缩需要消耗额外的 CPU 资源,也增加了耗电,并且它有时会在不该压缩的时候去压缩,造成性能降低,导致电脑突然变的卡顿。
建议:大于8g内存的电脑没必要为了节省那一点点要靠CPU长期额外工作才压缩节省的内存空间,这时候关闭内存压缩可获得更好的稳定性。
下面给出一个ai写的bat脚本(懒人专属)。
下载
Windows10,11 内存压缩管理脚本.rar
(1.19 KB, 下载次数: 56)
不放心的请直接把下列代码复制后另存ANSI保存
@echo off
:: 自动请求管理员权限(绿底窗口)
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:: 设置绿底白字窗口
color 2F
:menu
cls
echo ============================================
echo.
echo Windows10,11 内存压缩管理脚本
echo.
echo ============================================
echo.
echo.
echo 1. 查询内存压缩当前状态
echo.
echo 2. 关闭内存压缩,并禁用相关计划任务
echo.
echo 3. 开启内存压缩,并启用相关计划任务
echo.
echo 4. 退出
echo.
echo ============================================
echo.
set /p choice=请输入选项 (1/2/3/4):
if "%choice%"=="1" goto query
if "%choice%"=="2" goto disable_compress
if "%choice%"=="3" goto enable_compress
if "%choice%"=="4" exit /b
goto menu
:query
cls
echo 正在查询内存压缩状态...
echo.
powershell -Command ^
"$mm = Get-MMAgent; ^
$memoryGB = [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB); ^
if ($mm.MemoryCompression) { ^
Write-Host '结果:内存压缩已开启'; ^
if ($memoryGB -gt 8) { ^
Write-Host ('本机内存大于8GB(当前约' + $memoryGB + 'GB),建议关闭内存压缩') ^
} ^
} else { ^
Write-Host '结果:内存压缩已关闭'; ^
if ($memoryGB -le 8) { ^
Write-Host ('本机内存小于等于8GB(当前约' + $memoryGB + 'GB),建议开启内存压缩') ^
} ^
}"
echo.
echo.
pause
goto menu
:disable_compress
cls
echo 正在关闭内存压缩...
echo.
powershell -Command "Disable-MMAgent -MemoryCompression"
if %errorlevel% equ 0 (
echo.
echo 内存压缩已关闭。
) else (
echo.
echo 操作失败,请检查错误信息。
)
echo.
echo 正在禁用相关计划任务...
schtasks /change /tn "\Microsoft\Windows\MemoryDiagnostic\ProcessMemoryDiagnosticEvents" /disable
schtasks /change /tn "\Microsoft\Windows\MemoryDiagnostic\RunFullMemoryDiagnostic" /disable
echo.
echo 计划任务已禁用。
echo 请重启系统使更改生效。
echo.
pause
goto menu
:enable_compress
cls
echo 正在开启内存压缩...
echo.
powershell -Command "Enable-MMAgent -MemoryCompression"
if %errorlevel% equ 0 (
echo.
echo 内存压缩已开启。
) else (
echo.
echo 操作失败,请检查错误信息。
)
echo.
echo 正在启用相关计划任务...
schtasks /change /tn "\Microsoft\Windows\MemoryDiagnostic\ProcessMemoryDiagnosticEvents" /enable
schtasks /change /tn "\Microsoft\Windows\MemoryDiagnostic\RunFullMemoryDiagnostic" /enable
echo.
echo 计划任务已启用。
echo 请重启系统使更改生效。
echo.
pause
goto menu
|
|