로그인 해주세요.

미니기기 / 음향 게시판 *스마트폰과 PC, 카메라, 스피커 등 IT 미니기기와 음향기기에 관해 교류하는 게시판입니다.

WayBack

미니 로제타 2 작동 방식

  • WayBack
  • 조회 수 882
  • 2020.08.11. 11:49

좋은 글이 있어서 한 번 가져와봅니다. 많은 분들이 로제타 2가 모든 상황에서 AOT로 돌아간다고 생각하시는 것 같네요. ㄷㄷ;

 

x86 인텔 바이너리를 ARM 맥에서 구동할 수 있게 해 주는 Rosetta 2에서는 조금 더 이야기가 복잡해진다. Microsoft조차도 Windows 10에 x86-to-ARM Simulator를 집어넣었지만, 성능이 극도로 저하되는 문제로 사용자들의 외면을 받고 있는 처지이기 때문이다. 애플은 이 문제를 좀 더 똑똑하게 해결하는데, Universal 2와 마찬가지로 LLVM 컴파일러의 힘을 빌려 AOT (Ahead-of-Time)과 JIT (Just-in-Time) 기법을 모두 사용하는 것이다.

 

먼저 Mac App Store에서 배포되는 앱들은, ARM 맥이 본격적으로 출시되고 난 이후 시점부터는 Universal 2 바이너리의 형태로 강제로 ARM 바이너리를 지원해야 업데이트가 가능해질 것이기 때문에 크게 신경쓸 필요가 없다. 그럼 오랫동안 업데이트가 안 된 앱들은? 크게 두 가지 방법이 있다. App Store 서버에서 AOT Translation을 거쳐 ARM 바이너리를 생성해 제공하는 방법, 그리고 로컬에서 처리하는 방법이다. 서버에서의 AOT Translation은 재컴파일에 필요한 컴퓨팅 요구사항이 bitcode의 경우와는 달리 꽤나 크기 때문에, 실험적으로만 지원할 것으로 보이나 아직 확실치는 않다 (이와 관련된 상세한 내용들은 WWDC 이후 세션들에서 공개될 예정이므로, 상세 사항이 업데이트되는 대로 본 글을 수정할 예정이다).

 

App Store 바깥에서 배포되는 x86 앱들은, 마찬가지로 AOT Translation을 통해 설치 시 자동으로 ARM 바이너리로 변환된다. 다만 AOT 기법이 먹히지 않는 경우가 있으니, 바로 앱 그 자체가 JIT를 사용하는 경우다 (런타임, 가상화 등등). 이렇게 되면 바이너리 자체가 고정되지 않고, 프로세서에 전달하는 명령 옵코드가 매번 변경되기 때문에 사전에 ARM 바이너리를 생성하는 것이 불가능하다. 이러한 경우에만 제한적으로 실시간 x86 Translation을 사용하겠다는 것이다 (JIT를 위한 JIT). 즉 성능 저하가 상당히 있겠으나, 이런 류의 앱들의 경우 그 수가 많지는 않고 대부분 Universal 2를 통해 발빠르게 ARM 바이너리를 지원할 것이기 때문에 실제 ARM 맥이 소비자들에게 판매되는 시점에서는 크게 문제가 되지 않을 것으로 보인다.

WayBack
Remember 416
일본불매/NO JAPAN

MacBook Pro Early 2015 13"
iPhone 11 White
Mac Pro 2019
iPad Pro 12.9 Space Grey (2021, M1)
AirPods Pro (2nd generation)
MacBook Pro 14" Silver (M2 Max)
iPhone 15 Pro Natural Titanium
댓글
3
1등 id4thomas
2020.08.11. 12:00

AOT,JIT 보다 더 중요한게 LLVM 컴파일러 일겁니다. 컴파일러쪽은 잘 모르지만 JIT로 비트코드 변환을 하더도 x86 로우레벨 적인 부분만 변환해서 효율적인 것으로 알고있습니다. 한번 공부해보면 재밌을거같아보이더라고요  "애플이 LLVM 컴파일러의 개발에 투자하며, 가상 머신 없는 네이티브 레벨에서의 플랫폼 독립성을 확보했기 때문이다.  "

[id4thomas]님의 댓글을 신고합니다. 취소 신고
긴닉네임2003291156
2등 긴닉네임2003291156
2020.08.11. 12:04

LLVM (IR)의 위력이죠. 몇번 간단히 글을 쓰기도 했었  -_- ㅋ

[긴닉네임2003291156]님의 댓글을 신고합니다. 취소 신고
콜홍
3등 콜홍
2020.08.11. 13:12

오우... 웹 기술(html5, js)를 통한 크로스플랫폼에 회의적인 생각을 갖고 있었는데, 애플은 네이티브 크로스 플랫폼을 구상하고 있었군요.

[콜홍]님의 댓글을 신고합니다. 취소 신고
취소
번호 분류 제목 글쓴이 날짜 조회 수
공지 공지 사이트 이용 수칙 240809 수정 file admin 18.08.04 119518 13
핫글 미니 여전히 카카오톡 이해가 안 가는 건 [16] update 212212 11:20 1127 16
핫글 미니 이번 아이폰 측면 버튼은 딱 이느낌입니다.. [10] 품귀문란 24.09.23 1228 15
핫글 미니 텔레그램의 장점. [6] update 아재건달_보노뭘보노 11:13 750 15
220554 미니 :: TEST :: JordanKwon 18.06.27 863 1
220553 미니 TEST2 흡혈귀왕 18.06.27 657 1
220552 미니 TESTING 키타카미 18.06.27 384 1
220551 미니 미게 잘 되네요 file 놋철씁니다 18.06.27 547 0
220550 미니 츄라이츄라이 [1] file Elsanna 18.06.27 573 0
220549 미니 와! 미게! Stellist 18.06.27 470 0
220548 미니 크흐 소통갓 베리힌님 file 놋철씁니다 18.06.27 532 0
220547 미니 여기 특별히 죽지 않으면 전 그냥 여기서 놀래요 [2] 놋철씁니다 18.06.27 973 0
220546 미니 근데 트래픽 늘어나면 어떻게 되나여 [1] file JordanKwon 18.06.27 636 0
220545 미니 안녕하세요 몽구스 18.06.27 262 0
220544 미니 모바일 ㅅㅅ file 놋철씁니다 18.06.27 781 0
220543 미니 청와통닭보다는 [2] 노랑통닭 18.06.27 645 0
220542 미니 근데 이거 XE예요? [1] file 놋철씁니다 18.06.27 890 0
220541 미니 도매인 이름 제가 한거임 생색 [1] file 놋철씁니다 18.06.27 609 0
220540 미니 안녕하세요~~ [2] 프로겐 18.06.27 451 0
220539 미니 닉넴 변경 놋철씁니다 -> Minny Minny 18.06.27 283 0
220538 미니 안녕하세요. 기립갤식입니다. [3] 기립갤식 18.06.27 563 0
220537 미니 KT LTE측정 [1] file Minny 18.06.27 393 0
220536 미니 구 미게 복구되었습니다. [1] Minny 18.06.27 410 0
220535 미니 소식 듣고 와봤는데... 상당히 좋네요 [1] 기븐 18.06.28 577 0
220534 미니 피난소 와봤습니다 [1] 늙은이 18.06.28 357 0
220533 미니 도메인이 신기하네요 [2] Minny 18.06.28 397 1
220532 미니 기어S4, 갤럭시노트9과 함께 공개예정 BarryWhite 18.06.28 334 0
220531 미니 픽셀3 & 픽셀3XL 디자인 [2] file BarryWhite 18.06.28 380 0
220530 미니 놋9 루머 BarryWhite 18.06.28 245 0

추천 IT 소식 [1/]

스킨 기본정보

colorize02 board
2017-03-02
colorize02 게시판

확장 변수

1. 게시판 기본 설정

게시판 타이틀 하단에 출력 됩니다.

일반 게시판, 리스트 게시판, 갤러리 게시판에만 해당

2. 글 목록

기본 게시판, 일반 게시판, 썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

3. 갤러리 설정

4. 글 읽기 화면

기본 10명 (11명 일 경우, XXXXX 외 1명으로 표시)

5. 댓글 설정

일정 수 이상의 추천을 받은 댓글에 표시를 합니다.

6. 글 쓰기 화면 설정

글 쓰기 폼에 미리 입력해 놓을 문구를 설정합니다.