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