class 는 reference type
struct는 value type
퍼포먼스적으로 봤을때
데이터 모델로써만 사용할때는 Struct가 유리
기능이 많다고하면 Class가 유리
만들어지거나 사용되는시간 Struct가 유리
struct TestStruct {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
class TestClass {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var testStruct: [TestStruct] = []
var testClass: [TestClass] = []
let startTime = CFAbsoluteTimeGetCurrent()
for _ in 0 ..< 1000000 {
testStruct.append(TestStruct.init(name: "aa", age: 0))
}
let durationTime = CFAbsoluteTimeGetCurrent() - startTime
let startTime2 = CFAbsoluteTimeGetCurrent()
for _ in 0 ..< 1000000 {
testClass.append(TestClass.init(name: "aa", age: 0))
}
let durationTime2 = CFAbsoluteTimeGetCurrent() - startTime2
print("durationTime Struct: \(durationTime)")
// durationTime Struct: 2.40787949849894
print("durationTime Class: \(durationTime2)")
// durationTime Class: 3.40787949849894
}
}'swift > 잡다함' 카테고리의 다른 글
| [loveAlarm] 로컬라이징 default 언어 설정 (0) | 2021.06.24 |
|---|---|
| filePrivate, private 차이 (0) | 2021.06.24 |
| extension, protocol, Higher_Order_Func (0) | 2021.06.16 |
| 기본 클로저 사용 (0) | 2021.06.07 |
| ARC (weak, unowned) (0) | 2021.06.01 |