我对此不确定,但此问题可能与Memory leak in batch for loop?有关。
我有以下简单的批处理脚本:
@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
更改为cls
,我就不会出现内存泄漏问题。我遇到了这个问题,因为我从Linux移植了一个Python脚本,它反复为显示的统计信息显示屏幕,如Clear the screen in python所示。
答案 0 :(得分:0)
我在我的x64机器上运行它并且工作正常,随着时间的推移它确实开始变得困难但是我不会把它称为内存泄漏,如果有任何东西它只会在CPU激活时锤击CPU。
根据计算机的性能,它可能正在努力跟上命令。我在timeout
中添加了一秒钟,现在cmd更加快乐,显示内存消耗不到1MB。
尝试根据您的需要调整它,或者找到获得速度和性能的中间位置,只需给cmd一个休息时间:)
@echo off
:label
cmd.exe /c cls
echo hello
timeout /t 1 >nul
goto label