0

我对此不确定,但这个问题可能与循环中的内存泄漏有关?.

我有以下简单的批处理脚本:

@echo off
:label
cmd.exe /c cls
echo hello
goto label

当此脚本在 Windows7 32 位安装上运行时,它运行良好。但是,当我在我可以访问的少数 Windows7 64 位计算机上运行它时,它会缓慢而明显地耗尽所有系统内存 - 正如在 Windows 任务管理器中所见。关闭执行上述批处理行的窗口后,内存仍处于使用状态。

这是否发生在其他人身上?如果没有,您知道是什么原因造成的吗?系统上安装的其他软件?

如果我这样做,我也会有同样的行为

while True: os.system('cls')

在 Python-X/Y shell 中循环。它似乎与创建子流程有关。如果我将上述内容从 更改cmd.exe /c cls为 just cls,则不会出现内存泄漏。我遇到了这个问题,因为我从 Linux 移植了一个 Python 脚本,该脚本重复地为统计显示执行清屏,为 Windows 实现,如Clear the screen in python中所示。

4

1 回答 1

0

我在我的 x64 机器上运行它,它工作正常,随着时间的推移它确实开始挣扎,但我不会称之为内存泄漏,如果有的话,它只会在 CPU 达到峰值时敲击它。

根据计算机的性能,它可能只是在努力跟上命令。我添加了timeout一秒钟,现在 cmd 更快乐并且显示不到 1MB 的 RAM 消耗。

尝试根据您的需要调整它,或者找到获得速度和性能的中间地带,只需让 cmd 休息一下:)

@echo off
:label
cmd.exe /c cls
echo hello
timeout /t 1 >nul
goto label
于 2012-07-03T11:26:56.700 回答