不久前,我遇到了以下线程:[有关虚拟空间的帖子] [1]。
start /wait /b powershell -command "Set-ItemProperty -Path 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management' -Name 'PagingFiles' -Value 'c:\pagefile.sys 1024 1024, d:\pagefile.sys 4096 4096'"
我想知道是否可以将当前安装的RAM大小自动检测并乘以3。
据我所知,虚拟空间的建议最大大小是当前RAM的3倍,是否可以通过单击完成一个批处理?
我假设您必须通过cmd设置变量并将其包含在上面列出的代码中,例如:
start /wait /b powershell -command "Set-ItemProperty -Path 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management' -Name 'PagingFiles' -Value 'c:\pagefile.sys **AUTODETECTCURRENTRAM** **AUTODETECTCURRENTRAM*3**, d:\pagefile.sys 4096 4096'"
我很想听听您对此的看法,您认为如何实现这一目标?它将对提高计算机性能有用吗?
答案 0 :(得分:2)
可以使用systeminfo来获取总内存,尽管它不是一个静默或快速的过程
@Echo off
for /f "tokens=2* delims=:" %%a in ('systeminfo ^| findstr /I /C:"Total Physical Memory"') do Set "TotalRAM=%%a"
Set "TotalRAM=%TotalRAM: =%"
Set "TotalRAM=%TotalRAM:,=%"
Set "TotalRAM=%TotalRAM:MB=%"
我不知道您的预定目的是否会有所帮助。
要查找当前的最大虚拟内存,请执行以下操作:
for /f "tokens=3* delims=:" %%a in ('systeminfo ^| findstr /I /C:"Virtual Memory: Max Size:"') do Set "maxVRAM=%%a"
Set "maxVRAM=%maxVRAM: =%"
Set "maxVRAM=%maxVRAM:,=%"
Set "maxVRAM=%maxVRAM:MB=%"
答案 1 :(得分:2)
我认为您正在寻找内容如下的批处理文件:
@PowerShell -NoProfile -Command ^
"$TotalRAM = (GWMI Win32_PhysicalMemory|Measure Capacity -Sum).Sum/1MB;" ^
"$VirtualM = $TotalRAM * 3;" ^
"Set-ItemProperty -Path \"Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\" -Name \"PagingFiles\" -Type \"MultiString\" -Value \"C:\pagefile.sys $TotalRAM $VirtualM`r`nD:\pagefile.sys 4096 4096\" -Force"
这应创建一个REG_MULTI_SZ条目,其第一个列在C:
的根目录下,其初始大小与您的总物理RAM匹配,并且其最大值与初始设置的三倍匹配。第二个文件在D:
的根目录中列出,初始大小和最大大小均为4096 MB。
请注意,此答案不是建议,我认为没有必要假设微软并不比我更好地管理此类事情。