2
我的程序中有大量内存泄漏。这是我第一次在紧密循环中使用IronPython,所以我想知道这是否是原因。IronPython:这会泄漏内存吗?
For Each column In m_Columns
Dim rawValue As String
rawValue = line.Substring(column.FileColumnIndex.Value - 1, column.FileColumnEndIndex.Value - column.FileColumnIndex.Value + 1)
If column.IncludeColumnFunction <> "" Then
Dim scope = m_ScriptEngine.CreateScope
scope.SetVariable("Line", line)
scope.SetVariable("Row", targetRow)
If Not CBool(m_ScriptEngine.Execute(column.IncludeColumnFunction, scope)) Then Continue For 'skip this column
End If
targetRow(column.DatabaseColumnName) = column.ParseValue(rawValue, targetRow)
Next
名为column.IncludeColumnFunction的字符串从不会更改为给定的列。它通常像“Row ['Foo'] =='Bar'”一样简单。
我可以/应该缓存编译的函数吗? 当我完成它时,我应该以某种方式销毁作用域变量吗?
工具只会告诉我什么码今天漏水,他们不会告诉我,这将是在未来的一个问题。 – 2010-10-14 08:36:39
@Jonathan,教育你自己关于目前的问题**将**帮助你避免他们在将来。随机猜测只是这种教育体验的一条较慢路径。 – JaredPar 2010-10-14 18:24:43