Dynamic Dispatch는 어떻게 이루어지는가? 클래스 VS 프로토콜
·
면접준비
사실 이게 첫번째 글이 아니에요. 프로토콜은 어떻게 동작하고 채택당한놈은 어떻게 알고 필수 메서드들을 구현하라고 컴파일 에러가 뜨는지 궁금했던 저는 더 나아가 프로토콜을 채택한 다양한 타입들이 같은 배열에 들어갔을 때, 어떻게 각각 올바른 메서드를 호출할 수 있을까?. 꼬꼬무하다보니 여기까지 왔습니다..쫌 어려웠어여. 주에 한번씩 복습할예정!! 들어가보자~잇!Dynmaic Dispatch정적 디스패치와 달리 런타임에 호출할 메서드가 결정되는 것입니다소스코드를 파싱하여 AST트리를 생성하고 의미분석하여 타입검사하고 중간언어인 SIL로 변환되는데 여기서 정적/동적 디스패치가 결정Virtual Tablefinal 키워드가 붙지 않은 클래스는 상속이 가능하기에 dynmaic Dispatch가 이루어진다.. 런타..
Swift Performance-wwdc24
·
면접준비
https://www.youtube.com/watch?v=nb3bRQa0iGQ&t=3s 1. Swift에서 말하는 성능이란?WWDC 2024에서 Apple의 John McCall이 발표한 "Explore Swift performance" 세션을 보면서 정말 많은 것을 배웠습니다.성능이라는 게 단순히 "빠르다/느리다"로 나눌 수 있는 게 아니더라고요.성능은 다차원적이고 상황적입니다. 여러 측면에서 성능을 평가할 수 있어요:지연 시간: 작업이 시작되고 완료될 때까지 걸리는 시간에너지 소모: 앱이 배터리를 얼마나 효율적으로 사용하는지메모리 사용: 앱이 얼마나 많은 메모리를 점유하고 어떻게 관리하는지보통 성능 문제를 조사할 때는 거시적인 관점에서 시작합니다. Instruments 같은 도구로 측정하고, 대부분은..