【发布时间】:2016-07-14 21:37:27
【问题描述】:
在以前的 Swift 版本中,我已经能够使用 posix_memalign 函数来分配对齐的内存来帮助优化某些操作。自从升级到 Swift 3 beta(包含 Xcode 8 beta 2)以来,它一直在失败,我不知道为什么。这可能只是测试版的一个问题,或者我只是需要更改我与函数的交互方式。
我用于调查该问题的示例代码如下所示。 (它尝试分配一个 16K 对齐的浮点数缓冲区。)
var pointer: UnsafeMutablePointer<Void>? = nil
let alignment: Int = 0x4
let length: Int = bufferSize
let ret = posix_memalign(&pointer, alignment, length * sizeof(Float))
if ret != noErr {
let err = String(validatingUTF8: strerror(ret)) ?? "unknown error"
fatalError("Unable to allocate aligned memory: \(err).")
}
posix_memalign 因“参数无效”而失败。消息。
有什么想法吗?
【问题讨论】: