У меня массивная утечка памяти в моей программе. Это первый раз, когда я использовал 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 ».
Могу ли я/должен ли я кэшировать скомпилированную функцию? Должен ли я каким-то образом разрушить переменную области, когда я покончу с этим?
Tools только сказать мне, что код протекает сегодня, они не будут говорить мне, что будет проблемой в будущем. –
@ Джонатан, воспитывая себя в текущих проблемах ** ** поможет вам избежать их в будущем. Случайное угадывание - это всего лишь более медленный путь к этому образованию. – JaredPar