<aside> 💡 순서
이유없이 dynamism, rumtime에 비용을 쏟는 코드는 좋지 않다
빠른 코드를 위해서라면 저 둘은 피하는게 좋음
<aside> 💡 어떻게 빠른 코드를 작성할 수 있을까?
Allocation
객체가 메모리에 allocation 될 때, Stack? Heap? → Stack이 더 빠름
Reference Counting
객체를 주고 받을 때, 얼마나 많은 reference counting overhead가 발생?
→ 적을수록 좋음
Method Dispatch
객체 내의 Method를 호출할 때, Static ? Dynamic ?
→ Static이 더 빠름
</aside>
Swift에서 메모리는 자동으로 Stack이나 Heap에 Allocate(할당)된다.
더 dynamic 하지만 stack에 비해서 효율적이진 않음
stack이 할 수 없는 일을 함
Stack 보다 Advance data structure
→ 스택보다 allocate, deallocate에 더 비용이 많이 드는 구조 (하지만 이가 주요한 요소는 아님)
Thread Safety overhead
Because multiple threads can be allocating memory on the heap at the same time, the heap needs to protect its integrity(무결성,진실성) using locking or other synchronization mechanisms. 여러 스레드가 동시에 힙에 메모리를 할당할 수 있으므로 힙은 잠금 또는 기타 동기화 메커니즘을 사용하여 무결성을 보호해야 합니다.
→ 이게 비용이 크다. 이 부분에 더 신경쓰면 Performance가 더 좋아질 수 있을 것