Почему Swift malloc () когда я перебираю цикл? - PullRequest
0 голосов
/ 31 октября 2019

Я тестирую производительность цикла в моем коде, и удивительно большое количество (734 мс для списка из 1000 000 элементов) тратится на

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

У всех есть идеи, почему этоявляется? Я особенно удивлен, почему Свифт будет malloc, когда то, что я делаю, в основном

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

Кажется, что это должен быть только доступ для чтения?

...