【发布时间】:2017-03-13 08:01:19
【问题描述】:
我想使用NSExpression 评估动态生成的数学表达式。当我运行下面的简单程序时,内存消耗很快就会达到 1 GB 甚至更多。
我显然是在泄漏内存还是我使用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。
【问题讨论】:
-
尝试使用自动释放池:stackoverflow.com/questions/25860942/….
标签: ios swift macos cocoa memory-leaks