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

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



답변

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

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


답변

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

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

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

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

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


답변

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

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

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

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

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

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

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


답변