在全新安装并启动 OS Windows x64 后,我启动了 cmd.exe(任何其他 exe)并将其关闭。然后我启动 rammap.exe(http://technet.microsoft.com/en-us/sysinternals/ff700229.aspx)。在名为“进程”的第二页上,我按进程名称对列表进行排序,发现 cmd.exe 仍然占用内存(4K 私有内存和 16K 页表 = 20K)。我第二次启动它,列表中出现了新项目(每个进程启动+终止都会出现一个)。因此,每次进程终止都会占用 20K 内存。
如果您的软件在此类服务器操作系统上频繁启动和终止进程,您会发现几天或几周后操作系统开始显示奇怪的错误(通常是内存不足)。几天后,您所要做的就是重新启动操作系统。重新启动后,它在几乎相同的时间内运行良好。
我在每个 2008 Server R2 x64 (+SP1 和 -SP1) 上都注册了这个问题,并且间接地(rammap 不支持)在 2003 Server x64 上注册了这个问题。
在 Windows 7 x32 (+SP1 和 -SP1) 上未发现该问题。
截屏
参见探索此问题的第一步页表快速增长
有人能反驳或认可我的假设和观察吗?有人能告诉我如何解决此问题吗?这是错误吗?
答案1
好吧,如果您想关闭所有“cmd.exe”实例,您可以使用 TASKKILL 命令。
TASKKILL /IM "CMD.EXE" /F
这是结束进程的所有正在运行的实例的一种非常简单的方法,请始终记住以管理员身份运行,以便授予程序完成进程所需的权限。