小型PowerShell脚本使用大量内存

时间:2015-10-05 10:40:40

标签: powershell

我有这个脚本来捕获网络上的IP,以便与历史数据包捕获进行比较,作为更大问题解决练习的一部分。

require 'date'
while true do
    print "Enter bithday:"
    date_string = gets.chomp
    begin   
        date = Date.strptime(date_string, "%d.%m.%Y")
        print "Your bithday: #{date}"
        break
    rescue 
        puts "You enter incorrect date"
    end
end

我最初在两周前关闭了它,在上周中旬它运行的终端停止运转,因为电源外壳进程的内存使用量接近2GB。

我停下来重新启动它,今天早上我们再次使用1.2GB内存。

虽然不是特别关键,但我已将其修改为运行一次然后停止/启动自己,我有兴趣知道哪个元素导致内存泄漏以及我将来如何识别它。< / p>

2 个答案:

答案 0 :(得分:2)

您可以尝试手动调用垃圾回收。我认为do / until循环是个好地方:

DO
    {
    foreach($comp in $comps)
        {
        ECHO "$(qp $comp);$comp" >>"C:\PacketCapture\IP_$(Get-date -format HHmm-ddMMyy).txt"
        }
    Start-sleep 3600
    [GC]::Collect()
    }
until($null -eq "WANG")

答案 1 :(得分:-1)

尝试使用[System.GC]::Collect()

将垃圾收集引入代码中

来源:https://dmitrysotnikov.wordpress.com/2012/02/24/freeing-up-memory-in-powershell-using-garbage-collector