PowerShell中的处理和清理 - 手动还是自动?

时间:2016-10-01 04:21:34

标签: powershell memory memory-leaks dispose

在过去的几个月里,我一直在相当重要的PowerShell工作。不得不说,它让我感到意外。我认为只是一个过度膨胀的CMD版本实际上是一个非常强大的,面向对象的,多功能的.NET语言。

我以前的语言经验(所有自学成才)都是Java,C ++和Wiring(C ++的Arduino / Particle变体),其中很多都是在受限环境(CoAP)中。在受限制的嵌入式环境中工作使我更加认识到内存处理和占用*。如果您的系统资源有限,则在未选中时内存泄漏可能会造成破坏。

话虽如此,我不确定PowerShell是否直观地处理内存分配和处理。因为它是一种更高级别的语言,所以在幕后处理它们是有意义的,但我想确定。我看到一个PowerShell脚本在完成特定$object.Dispose()时实际调用了$object

那么,我是否需要为我创建的每个Dispose()调用New-Object方法?

谢谢!

*我理解,与像计算机或服务器这样的信息系统相比,像ATMega328P微控制器(30kb ROM \ 2kb RAM)这样的系统存在巨大差异,但是,如果处于持续运行状态,内存泄漏加起来很可能导致崩溃。此外,我知道一旦会话结束,所有内容都会被转储。

1 个答案:

答案 0 :(得分:2)

这不是必需的,但它仍然是一种很好的做法。如果没有它,PowerShell仍将在您之后清理,但可能需要更长的时间。当然,只要您的代码包含对它们的引用,对象就不会自动处理。

Related