0

これについてはよくわかりませんが、この質問はバッチ for ループでのメモリ リークに関連している可能性がありますか? .

次の簡単なバッチ スクリプトがあります。

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

このスクリプトを Windows7 32 ビット インストールで実行すると、正常に動作します。しかし、私がアクセスできる数台の Windows7 64 ビット マシンで実行すると、Windows タスク マネージャーで見られるように、ゆっくりと明らかにすべてのシステム メモリを取り返しのつかないほど消費します。上記のバッチ行を実行するウィンドウを閉じた後も、メモリは使用されたままになります。

これは他の人にも起こっていますか?そうでない場合、何が原因か分かりますか? システムにインストールされている他のソフトウェアは?

私がする場合、私は同じ動作をします

while True: os.system('cls')

Python-X/Y シェルでループします。サブプロセスの作成と連動しているようです。上記をcmd.exe /c clsから justに変更するclsと、メモリリークは発生しません。この問題に遭遇したのは、Python で画面をクリアする に示すように、Windows 用に実装された、統計表示のために画面をクリアすることを繰り返し行う Python スクリプトを Linux から移植したためです。

4

1 に答える 1

0

x64 マシンで実行しましたが、問題なく動作します。時間の経過とともに苦労し始めますが、メモリ リークとは呼びません。どちらかといえば、スパイク時に CPU を叩くだけです。

コンピューターのパフォーマンスによっては、コマンドに追いつくのに苦労している可能性があります. ちょっと追加しましたtimeoutが、cmd ははるかに快適になり、RAM の消費量は 1MB 未満になりました。

これをニーズに合わせて調整するか、速度とパフォーマンスが得られる中間点を見つけて、cmdに休憩を与えてください:)

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