swift (4) 썸네일형 리스트형 WWDC 16 Understanding Swift Performance ( 2 / 2 ) Struct로 정적 디스패치지만 프로토콜로 인해 다형성을 가지게 된다.drawables에 Point와 Line모두 들어가는 것이 가능하다. 하지만 Struct Line과 Struct Point는 V-Table 디스패치를 수행하는데 필요한 공통 상속 관계를 유지하지 않는다.그렇다면 아떻게 배열을 도는 동안 올바른 메소드로 디스패치를 하는 것 일까?Protocol Witness Table 이렇게 각자의 테이블을 형성하고 연결이 되어 있다. 어떻게 배열의 요소에서 테이블로 이동을 할까? Line은 4개의 프로퍼티를 가지고 있고Point는 2개의 프로 퍼티를 가지고 있다.배열은 요소들을 고정된 크기로 균일하게 저장하려 한다.어떻게 가능할까?Existential Containerswift가 Existenti.. WWDC 16 Understanding Swift Performance (1/2) 서론swift 코드를 작성할 때 내가 만든 인스턴스가 스택에 할당될 건지?아니면 힙에 할당되는 것인지?이 인스턴스를 전달할 때 참조 계산 오버헤드가 얼마나 되는가?동적 할당인가? 정적 할당인가? 알고 있어야한다. 그동안 문제가 생기면 생각을 해도 코드를 작성하기 전에, 스스로 생각하면서 코드를 작성하지는 않는 듯하다.AllocationStack스택이란??후입선출의 데이터 구조로 가장 나중에 들어간 데이터가 가장 먼저 나오게 된다.함수를 호출할 때 공간을 만들기 위해 스택 포인터를 간단하게 줄이는 것으로 필요한 메모리를 할당할 수 있다.함수의 실행이 끝나면 스택 포인터를 함수를 호출하기 전의 위치로 다시 증가 시키는 것만으로 간단하게 해당 메모리 할당을 해제할 수 있다.스택은 힙에 비해 상대적으로 빠른 처.. Closure 클로저 https://docs.swift.org/swift-book/documentation/the-swift-programming-language/closures/ combine의 sink라는 메서드가 변수나 상수에 할당이 안되면 내부 클로저의 구문이 실행이 안돼서 의문을 가지고 closure를 찾아보게 되었다.ClosureClosures can capture and store references to any constants and variables from the context in which they’re defined.closure는 선언된 위치에서 해당 상수와 변수에 대해 reference를 capture한다. 이것을 상수와 변수에 대한 클로징이라고 한다.그렇다면 capture 때문에 메모리에 부담.. Initialization 초기화 swift의 기초를 공부한 것을 기록하기 위해 작성 했습니다.참고: https://docs.swift.org/swift-book/documentation/the-swift-programming-language/initialization/ Documentation docs.swift.org참고 서적: 스위프트 프로그래밍(3판) - 야곰Initialization초기화는 클래스, 구조체 또는 열겨형의 인스턴스를 사용할 수 있도록 하는 준비과정이다.초기화 과정에서 인스턴스에 저장된 각 프로퍼티에 대한 초기 값을 설정하고 인스턴스를 사용하기 전 기타 설정들을 한다.초기화가 완료된 인스턴스는 사용 후 소멸 시점이 오면 소멸한다.objc 의 init과 다르게 swift의 init은 값을 반환하지 않는다initial.. 이전 1 다음