iOS
2021.07.19

맥OS와 iOS 15 앱 실행 속도 "비약적으로 개선된다"

Michael Simon | Macworld
올해 가을 iOS 15와 맥OS 몬터레이가 출시되면 사용자는 페이스타임과 사파리의 새 기능에 가장 먼저 주목하게 될 것이다. 바로 ‘속도 개선’이다. 새 운영체제의 코드를 파헤친 한 개발자는 애플이 앱과 시스템의 소통 방식이 확연히 바뀌었고, 특히 앱 시작 시간이 비약적으로 빨라졌다고 주장했다.

iOS 개발자이자 전직 애플 직원인 노아 마틴은 X코드 13 릴리즈 노트를 읽으면서 흥미로운 점을 발견했다.

“맥OS 12와 iOS 15 이후 버전 배포를 목적으로 개발된 모든 프로그램과 .dylib 파일은 체인으로 연결된 픽스업 포맷을 사용한다. 이 방식은 지금까지와는 다른 명령과 LINKEDIT 데이터를 사용하며, 구형 운영체제에서 실행하거나 로드되지 않는다”는 내용이다.

대단한 변화로 보이지는 않지만, 이 두 문장은 맥과 아이폰 사용 경험을 바꾸는 새로운 기술을 설명해 준다. 마틴은 기술 배경을 조금 더 파헤친 후 아주 길고 기술적인 글을 미디움 게시물로 작성했다. iOS 15와 맥OS 12에 최적화된 앱이라면 지금보다 훨씬 빨리 실행된다는 이야기다.
 

작동 원리

iOS와 맥OS에서는 현재 모든 앱이 하나의 묶음으로 개발된다. 윈도우와 달리 맥과 iOS 애플리케이션에는 패키지 안에서 가장 필수적인 구성 요소가 탑재된다. 앱은 모든 프로그램 구성 요소를 담고 있는 하나의 폴더와 같다. 맥 사용자라면 아마 알고 있을 것이다. 파인더에서 앱을 우클릭할 경우, 앱 내부를 살펴 볼 수 있는 ‘패키지 콘텐츠 보기(Show Package Contents)’ 명령을 선택할 수 있기 때문이다. 또한, dyld로 공유 라이브러리를 로드하고, 이 라이브러리는 프로그램이 실행되는 동안 빠르게 시스템 RAM에 복사된다.

RAM은 각각 16kb밖에 되지 않는 일종의 페이지로 구성되고, 앱이 실행되는 동안 계속 유지된다. dyld 프로세스에 이러한 압축 테이블이 점차 쌓여가면서 결과적으로 앱 실행 속도를 지연시킨다. 마틴은 애플이 iOS 15와 맥OS 12에서 연결고리인 체인과 픽스업, 포인터를 활용해 이 문제를 풀었다고 주장한다. 개별 앱 구성요소와 공유 라이브러리를 RAM에 별도로 계속 쌓아가는 방법 대신, 포인터가 앱을 최대 64GB까지 묶고 각각을 픽스업 기술로 연결하는 것이다.

복잡해 보이지만 사실은 간단하다. RAM의 내용물이 각각을 체인으로 연결되어 있다는 의미다. 이결과 관리에 사용되었던 방대한 양의 메타데이터를 절약하고, 전체 RAM 관리를 훨씬 효율적으로 할 수 있다. 여기에 더해 오랫동안 사용되지 않은 RAM 페이지는 압축할 수도 있다.

마틴에 따르면 이 새로운 시스템은 두 가지 결과를 가져왔다. 가용 메모리 양이 최적화되고, 메모리의 바이너리 콘텐츠를 타깃화해서 배분하므로 앱 실행 속도가 개선된다. 마틴은 테스트를 통해 메타데이터 처리 속도가 최대 50% 증가했음을 알 수 있었다고 밝혔다. 메타데이터가 dyld 프로세스로 들어오면서 궁극적으로 앱 시작 속도 향상에 기여한 것이다.

애플은 이미 맥OS 12와 iOS 15의 3번째 베타를 공개했고, 각각 9월과 10월에 정식으로 출시할 예정이다. 새로운 변화를 직접 체감할 날도 얼마 남지 않았다. editor@itworld.co.kr 


iOS
2021.07.19

맥OS와 iOS 15 앱 실행 속도 "비약적으로 개선된다"

Michael Simon | Macworld
올해 가을 iOS 15와 맥OS 몬터레이가 출시되면 사용자는 페이스타임과 사파리의 새 기능에 가장 먼저 주목하게 될 것이다. 바로 ‘속도 개선’이다. 새 운영체제의 코드를 파헤친 한 개발자는 애플이 앱과 시스템의 소통 방식이 확연히 바뀌었고, 특히 앱 시작 시간이 비약적으로 빨라졌다고 주장했다.

iOS 개발자이자 전직 애플 직원인 노아 마틴은 X코드 13 릴리즈 노트를 읽으면서 흥미로운 점을 발견했다.

“맥OS 12와 iOS 15 이후 버전 배포를 목적으로 개발된 모든 프로그램과 .dylib 파일은 체인으로 연결된 픽스업 포맷을 사용한다. 이 방식은 지금까지와는 다른 명령과 LINKEDIT 데이터를 사용하며, 구형 운영체제에서 실행하거나 로드되지 않는다”는 내용이다.

대단한 변화로 보이지는 않지만, 이 두 문장은 맥과 아이폰 사용 경험을 바꾸는 새로운 기술을 설명해 준다. 마틴은 기술 배경을 조금 더 파헤친 후 아주 길고 기술적인 글을 미디움 게시물로 작성했다. iOS 15와 맥OS 12에 최적화된 앱이라면 지금보다 훨씬 빨리 실행된다는 이야기다.
 

작동 원리

iOS와 맥OS에서는 현재 모든 앱이 하나의 묶음으로 개발된다. 윈도우와 달리 맥과 iOS 애플리케이션에는 패키지 안에서 가장 필수적인 구성 요소가 탑재된다. 앱은 모든 프로그램 구성 요소를 담고 있는 하나의 폴더와 같다. 맥 사용자라면 아마 알고 있을 것이다. 파인더에서 앱을 우클릭할 경우, 앱 내부를 살펴 볼 수 있는 ‘패키지 콘텐츠 보기(Show Package Contents)’ 명령을 선택할 수 있기 때문이다. 또한, dyld로 공유 라이브러리를 로드하고, 이 라이브러리는 프로그램이 실행되는 동안 빠르게 시스템 RAM에 복사된다.

RAM은 각각 16kb밖에 되지 않는 일종의 페이지로 구성되고, 앱이 실행되는 동안 계속 유지된다. dyld 프로세스에 이러한 압축 테이블이 점차 쌓여가면서 결과적으로 앱 실행 속도를 지연시킨다. 마틴은 애플이 iOS 15와 맥OS 12에서 연결고리인 체인과 픽스업, 포인터를 활용해 이 문제를 풀었다고 주장한다. 개별 앱 구성요소와 공유 라이브러리를 RAM에 별도로 계속 쌓아가는 방법 대신, 포인터가 앱을 최대 64GB까지 묶고 각각을 픽스업 기술로 연결하는 것이다.

복잡해 보이지만 사실은 간단하다. RAM의 내용물이 각각을 체인으로 연결되어 있다는 의미다. 이결과 관리에 사용되었던 방대한 양의 메타데이터를 절약하고, 전체 RAM 관리를 훨씬 효율적으로 할 수 있다. 여기에 더해 오랫동안 사용되지 않은 RAM 페이지는 압축할 수도 있다.

마틴에 따르면 이 새로운 시스템은 두 가지 결과를 가져왔다. 가용 메모리 양이 최적화되고, 메모리의 바이너리 콘텐츠를 타깃화해서 배분하므로 앱 실행 속도가 개선된다. 마틴은 테스트를 통해 메타데이터 처리 속도가 최대 50% 증가했음을 알 수 있었다고 밝혔다. 메타데이터가 dyld 프로세스로 들어오면서 궁극적으로 앱 시작 속도 향상에 기여한 것이다.

애플은 이미 맥OS 12와 iOS 15의 3번째 베타를 공개했고, 각각 9월과 10월에 정식으로 출시할 예정이다. 새로운 변화를 직접 체감할 날도 얼마 남지 않았다. editor@itworld.co.kr 


X