deer-develop / study

2 stars 0 forks source link

7장 이제 좀 들어본 적 있는 얘기가... #30

Open hyewoncc opened 6 months ago

hyewoncc commented 6 months ago

거의 명세 얘기라서 정리할 게 별로 없군요

p.160 그림

고수준 언어만 쓰다 보니, 어셈블러 만들 때 여기가 어디지... 내가 뭘 만드는 거지... 평소에 짜는 코드가 대체 어떻게 이걸로 변환된다는 거지... 이런 느낌이었는데 VM 번역기 스텝을 보니까 아 컴파일 된 코드를 이렇게 만들어주는 누군가가 또 있구나를 이제야 깨달았어 ㅋㅋ

가상 머신 1: 프로세싱

이 장의 또 다른 주요 주제는 스택 프로세싱 이다. ...이 장의 VM은 스택 기반이므로, 엄청나게 다양하게 쓰이는 이 강력한 데이터 구조의 실제 활용 예를 살펴보게 될 것이다 p.163

한창 JVM 공부할 때, 어떻게 스택을 사용하는가 봤었는데 거의 마법과 구별할 수 없는 충격이었음. 1장부터 계속 드는 생각 : 누가 이런 기가막힌 생각을 했을까?

7.4.3 VM 구현 설계 제안

6장 구현할 때, 제안한 API 명세 안 따르고 막 해서 디버깅 불가능한 결과물이 탄생했는데 제안을 잘 읽고 과제를 해야겠다...
그리고 구현 제안을 보는 게 본문 이해에 도움도 되는 것 같아

7.6 정리

일반적으로 VM 번역기에서 최적화할 부분은 매우 많다. ...이 VM 명령을 스택을 완전히 우회하는 어셈블리 코드로 영리하게 구현하면 극적인 성능 향상을 가져올 수 있다
p.189

jvm에서 이런 거나 https://stackoverflow.com/questions/2012528/is-there-any-concept-called-constant-folding-in-java 문자열 상수 풀 사용하는 것도 여기에 해당되는 예시인지? 궁금하네
근데 쓰다보니 상수풀은 해당 안되는 것 같다. 힙 참조값을 스택에 넣는 거니까?

myeongjae-kim commented 6 months ago

vm 번역기 최적화 기능 예시: https://stackoverflow.com/a/1680212