Swift Array vs ContiguousArray
배열의 Element 유형이 구조체 또는 열거형인 경우 Array와 ContiguousArray의 효율성은 비슷해야함
class , @objc, 프로토콜에서 배열을 NSArray에 브리지하거나 Objective-C API에 전달할 필요가 없는 경우 ContiguousArray를 사용하는 것이 배열보다 더 효율적이고 예측 가능한 성능을 가짐
class Address {
var street = ""
var city = ""
var state = "";
enum AddressAttributes {
case Street
case City
case State
}
func updateAttribute(value: String, attribute: AddressAttributes){
switch attribute {
case .Street:
street = value;
case .City:
city = value;
case .State:
state = value;
}
}
}
func testPerformanceForClassArray() {
let address = Address()
var array: [Address] = []
self.measure {
for _ in 0..<10000000 {
array.append(address)
}
}
}
func testPerformanceForClassContiguousArray() {
let address = Address()
var array: ContiguousArray<Address> = []
self.measure {
for _ in 0..<10000000 {
array.append(address)
}
}
}
ContiguousArray: 0.47s
Array: 2.45s