这个简单的批处理文件在相对短的时间内会消耗掉Windows 7(x64)上所有可用的内存。发生了什么?有什么预防措施可以采取来避免这种情况发生?
any-invalid-command-you-like-here ^
显然,展示此效果需要满足以下必要条件:
- 插入符号
^
必须是文件的最后一个字符,并且脚本末尾没有换行符 - 插入符号前面至少有两个空格或字符,例如在下面的代码中,如果点号(.)代表空格,则不会触发内存泄漏:
.^
,而这个代码则会触发:..^
(但速度较慢)
在这张进程管理器截图中,该脚本已运行约30秒,使用了2.9GB内存,而且内存使用量还在持续稳定地上升:
如果您要尝试使用此功能,请确保能够找到“关闭窗口[X]”控件,或者已经打开任务管理器或者进程管理器以备用,因为按下 Ctrl-C, Ctrl-Break, Alt-F4都没有作用。
多个插入符号将导致内存使用量更快速地升高。第一次遇到此问题时,1-2分钟内没有足够的可用内存进行简单操作,例如Alt-Tab,即使是三指敬礼的Ctrl-Alt-Del也无效。我不得不强制关闭机器。
以下字符串太长
和语法错误
(已翻译)。之后脚本终止。 - Endoro