【发布时间】:2016-12-23 11:43:24
【问题描述】:
我正在一个结构中收集字符串数据。最后,我将该字符串写入文件。结果是 4 个文件,每个 80 MB。但在内部,它占用了将近 16 GB(!)的 RAM,迫使操作系统进行交换。 (我使用的是 Swift 3.0)
struct ActionCMD { // struct!
var cmd = String()
...
mutating func lines(_ text: String, toTheTop: Bool = false) {
if toTheTop { cmd = text + cmd }
else { cmd += text }
}
...
}
知道为什么会发生这种情况以及如何避免吗?
【问题讨论】:
-
看起来你在某处有内存泄漏。您是否启动了 Instruments 并检查了所有内存的使用情况?
-
不,我不知道这个工具。我正在搜索它(以及如何使用)并尝试检查该问题。
-
当然可以,但如果不影响您的架构,您可以将
ActionCMD重写为class。
标签: swift string memory optimization