1
我想使用NSExpression
來評估動態生成的數學表達式。當我運行下面的簡單程序時,內存消耗快速總計高達1 GB或更多。NSExpression內存泄漏?
我明顯是內存泄漏還是有什麼問題,我使用的方式NSExpression
?
#!/usr/bin/env swift
import Foundation
for _ in 1...100 {
let expressionString = "((x - y) * ((x * x) - (((x - y) * -1) - y))) + (x * (((x * (y - x)) - x) * -1))"
let expression = NSExpression(format: expressionString)
for x in 0 ..< 320 {
for y in 0 ..< 320 {
let result = expression.expressionValue(with: ["x" : x, "y": y], context: nil) as! Double
}
}
}
在真正的程序,當然,我創建了一個新的expressionString
用於外部循環的每次迭代。
嘗試使用autorelease池:http://stackoverflow.com/questions/25860942/is-it-necessary-to-use-autoreleasepool-in-a-swift-program。 –