为什么我在循环中迭代时会使用Swift malloc()?

时间:2019-10-31 17:40:35

标签: arrays swift performance loops

我正在对我的代码中的一个循环进行性能测试,并且花了惊人的大量时间(对于1000万个项目,耗时734ms)

734ms Array.subscript.read
380ms   Array.subscript.getter
223ms     _ArrayBuffer.checkInoutAndNativeTypeCheckedBounds(_:wasNativeTypeChecked:)
 92ms     swift::metadataimpl::ValueWitnesses<swift::metadataimpl::SwiftRetainableBox>::initializeWithCopy(swift::OpaqueValue*, ...
 16ms     _swift_isClassOrObjCExistentialType
  3ms     swift_bridgeObjectRelease
329ms   malloc

任何人都知道为什么会这样吗?我特别感到惊讶的是,当我基本上在做什么时,为什么Swift会malloc

let myArray = [foo, bar, baz ...] // 1'000'000 instances of a class
for item in myArray {
    ...
}

似乎这应该只是读取权限?

0 个答案:

没有答案