Understanding Swift Performance - 번역
Understanding Swift Performance - WWDC16 - Videos - Apple Developer
이 고급 세션에서는 구조체, 클래스, 프로토콜, 제네릭이 Swift에서 구현되는 방법을 알아본다. 다양한 성능 차원에서 상대적 비용에 대해 알아보도록 하자. 그리고 이 정보를 적용하여 코드 속도를 높이는 방법을 알아봄
Swift의 추상화 메커니즘 성능 영향을 이해하는 가장 좋은 방법은 기본 구현을 이해하는 것이다.
목차
추상화를 빌드하고 추상화 메커니즘을 선택할 때 고려 사항
Stack
or Heap
중 할당되는 위치참조 카운팅 오버헤드
가 발생하나?Statically Dispatch
or Dynamically Dispatch
?dynamism
과 runtime
에 대한 비용을 지불 하지 않아야 한다.Swift는 사용자를 대신하여 자동으로 메모리를 할당 및 해제한다.
Stack
Stack
간단한 데이터 구조이다. 새로운 값이 Stack
의 마지막에 push
되고 Stack
의 마지막 값이 pop
된다.
Stack
의 마지막에서 위치에서 추가하거나 제거할 수 있기 때문에, Stack
끝에 pointer
를 유지함으로써 스택을 구현하거나 push
, pop
을 구현할 수 있다.
Stack
의 끝에 있는 Pointer
를 stack pointer
라고 부름stack pointer
를 약간 감소시키는 것만으로 필요한 메모리를 할당할 수 있다. 그리고 함수 실행이 끝나면 stack pointer
를 이 함수를 호출하기 전의 위치로 다시 증가시켜 메모리 할당을 간단하게 해제할 수 있다.
stack pointer
를 활용하는 방법은 정말 빠름