私はpowershellを初めて使用しますが、windows2003サーバーで実行されるいくつかのスクリプトを作成しました. これは間違いなく cmd スクリプトよりも強力です (プログラミングのバックグラウンドがあるためかもしれません)。しかし、さらに掘り下げていくと、次のことに気付きました。
- 起動された各スクリプトは、1 つの powershell プロセスの下で実行されます。スクリプトごとに新しい powershell プロセスが表示されます。
- 私がメモリについてテストしたスクリプトは非常に単純です。たとえば、文字列を作成するか、環境変数をクエリしてから、Start-Sleep を 60 秒間実行するだけなので (メモリ使用量に関しては) 何も必要ありません。ただし、各プロセスには約30MB以上かかります。私をケチと呼んでください、しかし、毎日実行するようにスケジュールされたメモリ集約型のアプリケーションがあり、いくつかのPowerShellスクリプトを定期的に実行するようにスケジュールする必要がある場合、そしておそらくいくつかのスクリプトをサービスとして継続的に実行するようにスケジュールする必要がある場合、私は確かにメモリ消費をできるだけ維持しようとします.できるだけ低く。<-- これは、メモリ不足による大規模なアプリケーション障害が最近発生したためです。
私はまだ C# に触れていませんが、タスクを C# で記述した方がよい場合があると考える人はいますか?
一方、powershell のメモリ リークに関する投稿を見てきました。スクリプトによって作成されたメモリはpowershellのプロセス空間内にあると考えるのは正しいので、スクリプトが終了するとpowershellが終了すると、作成されたメモリはクリアされますか?