[javascript] Chrome 디버거의 프로파일 러에서 “(프로그램)”이란 무엇입니까?

Chrome 디버거의 기능 열에서“(프로그램)”이란 무엇입니까?



답변

(program)등 자바 스크립트 네이티브 코드, 자원로드에서 점프를 시작하기 때문에 크롬 자체, 다른 모든 코드를 호출 트리의 루트입니다 … 그것은 거기 어딘가에 🙂

Chrome 개발자 도구 문서에서 트 리뷰의 예를 볼 수 있습니다 .


답변

나는 (프로그램)이 나무의 뿌리가 아니라 네이티브 코드라고 생각합니다.

이 스레드를 참조하십시오 :

https://bugs.webkit.org/show_bug.cgi?id=88446

따라서 main ()보다 시스템 호출과 더 유사합니다.

분명히 유휴 시간이 포함됩니다. 또한 (프로그램)의 일부 프로파일 링은 chrome : // profiler /


답변

@Nick이 말했듯이 어딘가에서 시작해야합니다.

CPU 프로파일 러 부분은 gprof와 동일한 개념을 기반으로하는 다른 많은 프로파일 러 와 같습니다 .

예를 들어, 편집 할 수있는 일부 코드에 큰 숫자 배열이 포함되어 있지 않으면 self 는 거의 쓸모없는 숫자입니다. 거의 없습니다.

총계 에는 수신자가 포함되어야하므로 더 유용합니다. 그러나 차단 시간과 실행 시간 동안 샘플을 채취하지 않으면 완전히 CPU 바인딩 프로그램을 제외하고는 여전히 쓸모가 없습니다.

이 통계는 코드 단위가 아닌 기능별로 제공됩니다. 그것은 ( 백분율에 의존 할 수 있다면 ) 함수가 비용을 많이 들인다는 의미에서, 스터 빙과 같이 어떻게 든 제로에 시간을 할애 할 수 있다면 그 백분율은 절약 할 시간이 얼마나되는지 의미합니다.

따라서 값 비싼 기능에 집중하려면 최적화 할 수있는 기능을 찾아야합니다. 그러기 위해서는 함수의 코드 라인에서 시간이 어떻게 세분화되는지 알아야합니다. 코드 단위로 비용을 지불 한 경우 해당 라인으로 직접 이동합니다.

Zoom 과 같은 라인 레벨에서보고하는 벽시계 스택 샘플러와 같은 더 나은 프로파일 러를 얻을 수 있는지 모르겠습니다 . 내가하는 방법은 다음과 같습니다 .


답변