我在過去的幾個月裏一直在PowerShell中工作得很厲害。得說,它讓我感到驚訝。我認爲只是CMD的過度膨脹版本實際上是一種非常強大的面向對象的多功能.NET語言。PowerShell中的處理和清理 - 手動還是自動?
我以前在語言(所有自學)方面的經驗一直是Java,C++和佈線(淡化的Arduino/C++的粒子變體),其中很多都是在受限環境中(CoAP)。在受限制的嵌入式環境中工作使我更瞭解內存處理和佔用*。如果您的系統資源有限,內存泄漏在未選中時可能會造成嚴重破壞。
就這樣說,我不確定PowerShell是否直觀地處理內存分配和處理。因爲它是一種更高級的語言,所以這些都是在幕後照顧的,但我想確保它是有道理的。我看到一個PowerShell腳本,當使用特定的$object
完成時,實際上調用了$object.Dispose()
。
那麼,我需要爲我創建的每個New-Object
調用一個Dispose()
方法嗎?
謝謝!
*據我所知,有像一個ATMEGA328P微控制器相比,像一臺計算機或服務器的信息系統的系統(30KB ROM \ 2KB RAM)大幅差異,但是,如果留在持續運行 - 狀態,內存泄漏加起來並可能導致崩潰。另外,我知道一旦會話結束,所有內容都會被丟棄。
太棒了。謝謝!如果您不介意我在這裏提出另一個問題,請參閱您提供的答案:是否允許在PowerShell中使用指針?這很大程度上與PowerShell腳本的預期用途有關 - 我希望以持久狀態運行它。如果我可以在開發過程中減輕風險,那麼在生命週期管理期間就會更容易。 – Rincewind
我不認爲PowerShell允許訪問指針。你可以使用引用('[ref]'),而且對象通常都是通過引用傳遞的(如果你想創建一個實際的副本,你需要顯式地克隆對象),但是這是關於它的AFAIK。 –