2016-10-01 1 views
1

私は過去数ヶ月間にPowerShellでかなり仕事をしてきました。私は驚いたことがありました。私が考えていたのは、CMDの膨大なバージョンは、実際には非常に堅牢で、オブジェクト指向の多用途の.NET言語です。PowerShellの廃棄とクリーンアップ - 手動または自動?

私のこれまでの経験は、制約の厳しい環境(CoAP)で多かったJava、C++、Wiring(C++の嫌なArduino/Particle変種)でした。制約のある組み込み環境で作業することで、メモリの処理と割り当てをよりよく理解できるようになりました。システムリソースが制限されている場合、チェックを外すとメモリリークが激しくなる可能性があります。

PowerShellがメモリの割り当てと廃棄を直感的に処理するかどうかはわかりません。それはより高水準の言語なので、それらは舞台裏で世話されていることが理にかなっていますが、私は確信しています。私はPowerShellスクリプトを実際に$object.Dispose()と呼んでいましたが、そのときには$objectで完了しました。

私が作成するNew-ObjectごとにDispose()メソッドを呼び出す必要がありますか?

ありがとうございます!


は*私は、永続的なランに残っている場合、しかし、コンピュータやサーバなどの情報システムに比べATMega328Pマイクロコントローラのようなシステム(30キロバイトROMの\の2キロバイトのRAM)の大幅な差があることを理解します状態では、メモリリークが増え、非常にクラッシュする可能性があります。また、セッションが終了すると、すべてが破棄されることを認識しています。

答えて

2

必須ではありませんが、依然として有効です。それがなければ、PowerShellはあなたの後にはまだクリーンアップしますが、かなり時間がかかることがあります。もちろん、あなたのコードが参照を保持している限り、オブジェクトは自動的に処理されません。

Related

+1

驚くばかりです。ありがとう!私がここで別の質問をするのを気にしないなら、あなたの答えに関連して:PowerShellでポインタが許可されていますか?多くのことが、PowerShellスクリプトの意図された使用と関係しています。私はそれを永続的な状態で実行したいと思っています。開発プロセス中にリスクを軽減できれば、ライフサイクル管理の際の作業がはるかに容易になります。 – Rincewind

+2

私はPowerShellがポインタへのアクセスを許可しているとは思わない。参照( '[ref]')を使うことができます。オブジェクトは通常、参照によって渡されます(実際のコピーを作成する場合はオブジェクトを明示的に複製する必要があります)。 –

関連する問題