해결된 질문
작성
·
542
1
안녕하세요 강의잘 보고있습니다.
다름이 아니라 이번편, 전편에서
reflow ,repaint 를 지양하기 위해 gpu 에 할일을 위임하여
성능의 최적화를 한다고 알려주셨는데요.
-
브라우저 단에서 랜더링을 하다가,
1. layout 단계 이전에 gpu에 render dom 데이터를 어떤 형태로든 보내고,
2. gpu는 받은 dom 데이터를 어떤식으로든 가공한 후에
3. gpu 자원 사용하여 랜더링 (멀티 쓰레딩)
하는 형태인것 같은데
-
이런 형태라면 분명 브라우저-gpu 간 데이터가 오고가는 사이에서의 딜레이와 부하가 있어서 부담이 될텐데
단순 reflow 보다 부담이 적은 이유가 무엇일까요?
혹시 관련하여 어떤 키워드로 검색해야 원하는 결과를 얻을수있을지 ㅜㅜ 답변 부탁드립니다. 감사합니다.
답변 2
4
안녕하세요 불멸의너구리좌님,
GPU를 사용하는 상황에서 데이터 통신에 대한 부하가 걸리지는 않는지 질문을 주셨는데요.
브라우저가 GPU에 작업을 위임할 때, 흔히 우리가 생각하는 네트워크 통신처럼 시간이 걸는게 아니라 굉장히 빠른 프로세스 간의 통신이 이뤄집니다. 또한, 크롬 브라우저에서는 이미 GPU 프로세스를 포함한 여러 역할을 담당하는 프로세스들이 동작하고 있기 때문에 별도의 오버헤드 없이 해당 프로세스들 끼리 데이터를 주고 받을 수 있게 됩니다.
즉, CPU에서 처리함으로써 떨어지는 성능에 비하면 거의 무의미한 수준의 비용이기 때문에 오히려 빨라지는 것입니다.
참고하실 수 있도록 도움되는 링크를 알려드리겠습니다.
- https://dev.opera.com/articles/ko/css-will-change-property/
- https://d2.naver.com/helloworld/2922312
- https://developers.google.com/web/updates/2018/09/inside-browser-part3#raster_and_composite_off_of_the_main_thread
강의에 관심을 가져주셔서 감사합니다. :)
0