JavaScript 프로그램을 작성할 때 특정 코드의 실행 시간을 알아야하는 경우 Console.Time ()을 사용할 수 있습니다. 그러나보다 복잡한 논리로 JavaScript 프로그램을 분석하고 성능 병목 현상을 찾으려고 할 때 Console.Time ()는 적용 할 수 없습니다 -보다 복잡한 논리를 가진 JavaScript 프로그램의 작동에 대한 심층 분석은 수많은 Console.Time () 문을 삽입하는 수단을 의미합니다. 복잡한 로직으로 JavaScript 프로그램 튜닝의 경우 올바른 방법은 Console.profile ()을 사용하는 것입니다.
브라우저 지원
Firebug 플러그인을 설치 한 Firefox, Google Chrome 및 Safari는 Console.profile () 문서를 모두 지원하며 IE 및 Opera의 최신 버전도 프로필 기능을 제공합니다. 여러 주요 브라우저에서 Console.profile ()을 사용하는 것은 유사합니다. 이 기사는 FireBug에서 Console.profile ()의 사용 만 소개합니다. 주목할 가치가있는 한 가지는 Firebug 콘솔을 사용하여 JavaScript 실험 코드를 직접 작성하면 Console.profile ()가 유효하지 않다는 것입니다.
Console.profile () 사용
Console.profile ()을 사용하는 것은 매우 간단합니다 : Console.profile () 삽입 프로파일을 시작 해야하는 Console.profileend () 삽입 프로파일. 다음 코드는 예입니다.
코드 사본은 다음과 같습니다.
함수 dotask () {
Dosubtaska (1000);
Dosubtaska (100000);
Dosubtaskb (10000);
Dosubtaskc (1000,10000);
}
기능 dosubtaska (count) {
for (var i = 0; i <count; i ++) {}
}
기능 dosubtaskb (count) {
for (var i = 0; i <count; i ++) {}
}
기능 dosubtaskc (Countx, County) {
for (var i = 0; i <countx; i ++) {
for (var j = 0; j <카운티; j ++) {}
}
}
Console.profile ();
dotask ();
Console.profileend ();
dotask () 함수를 실행하기 전에 console.profile ()을 실행하십시오. dotask () 함수가 완료되면 DotASK () 함수의 실행 중과 과정에서 세부 정보를 수집 할 수 있습니다. Firebug의 콘솔에서 볼 수 있습니다.
결과에서 프로필 시간이 총 101.901ms이며 5 개의 기능 호출이 포함되어 있음을 알 수 있습니다. 결과의 기본 제목은 "프로파일"이며 매개 변수를 Console.profile () 함수로 전달하여 사용자 정의 할 수 있습니다. 예를 들어, Console.profile ( "Test Profile")을 사용하면이 프로파일의 제목을 결과에서 "테스트 프로파일"으로 변경할 수 있습니다. 이는 여러 프로파일 프로세스가 동시에 실행될 때 특히 유용합니다. 특정 프로파일 결과에서 각 열의 의미는 다음과 같습니다.
1. 함수. 기능 이름.
2. 콜. 전화 수. 예를 들어, 위의 예에서 Dosubtaska () 함수는 두 번 실행됩니다.
3. 대가. 이 기능에 의해 소비 된 시간의 백분율은 전체 시간에 호출됩니다.
4. 소유 한 시간. 다른 기능을 호출하는 데 걸리는 시간을 제외하고, 함수 자체가 취한 시간을 제외합니다. 예를 들어, 위의 예에서, DotASK ()는 의심 할 여지없이 실행하는 데 오랜 시간이 걸렸지 만 다른 기능을 호출하는 데 항상 시간이 걸렸으므로 시간이 많이 걸리지 않았기 때문에 0.097ms 만있었습니다.
5. 시간. 자신의 시간과 달리, 다른 함수에 요소를 호출 할 때는 기능의 총 시간이 소요되는 계산을 고려하지 않습니다. 위의 예에서, dotask () 함수는 101.901ms를 실행합니다. 시간과 자신의 시간 동안, 당신은 또한 결론을 도출 할 수 있습니다. 시간이 자신의 시간보다 큰 경우 다른 기능에 대한 호출은 기능에 관여합니다.
6.avg. 계산 공식은 다음과 같습니다. avg = time/call. 위의 예에서, Dosubtaska () 함수는 두 번 실행되었고 총 시간은 1.054ms이므로 평균 총 시간은 0.527ms였습니다.
7. 마린. 이 기능을 호출하는 데 최소 시간이 소요됩니다. 예를 들어, 위의 예에서, Dosubtaska () 함수는 두 번 실행되며 최소 시간 소도는 0.016ms를 소비하는 데 시간이 덜 걸리는 통화입니다.
8.max. 이 기능을 호출하는 최대 시간. 예를 들어, 위의 예에서 Dosubtaska () 함수는 두 번 실행되었으며 최대 시간 소모적 프로세스는 1.038ms를 소비하는 데 더 많은 시간이 걸린다는 것입니다.
9. 파일. 기능이있는 JS 파일.
Firebug에서 프로필 버튼 사용
Console.profile () 문을 JavaScript 코드에 삽입하는 것 외에도 FireBug는 페이지의 동적 및 실시간 프로필 JavaScript 코드에 프로필 버튼을 제공합니다. 버튼 위치는 다음과 같습니다.
프로필이 필요한 경우 버튼을 누를 수 있으며 다음 페이지 작업이 JavaScript 코드를 트리거하면 FireBug가 기록됩니다. 프로필 프로세스가 끝나면 버튼을 다시 누릅니다. 최종 결과는 Console.profile () 문을 삽입하여 얻은 결과와 일치합니다.