2014-09-24 2 views
0

현재 제 3 자 지시문을 사용하고 있으며 화면에 무언가를 렌더링하는 데 걸리는 시간을 확인하려고합니다.각도로 무언가 렌더링하는 데 걸리는 시간

console.time('time'); 
    tableservice.setColumns(columns); 
    var dataView = new DataView(); 
    dataView.setItems(datarows); 
    $scope.columns = tableservice.getColumns(); 
    $scope.dataView = dataView; 
    console.timeEnd('time'); 

이것은 모델에 공급하기 위해 생성 한 코드이므로보기에 표시 할 수 있습니다.

시간이 오래 걸리고 콘솔을 보았습니다. 시간 방법이 너무 많이 달라 시간이 끔찍합니다.

가끔씩 나는 0.000ms와 1.000ms를 얻습니다. 이것은 전혀 미세하지 않습니다.

뷰에서 렌더링되는 데 걸리는 시간을 확인하는 가장 좋은 방법은 무엇입니까?

편집 :

나는 타이밍 방법을 많이 시도했습니다, 그들은 모두 내가 시간이 매우 정확하지 않습니다 있으리라 믿고있어 주위에 너무 많은 점프 보인다.

모델을 화면에 렌더링하는 데 걸리는 시간을 테스트하는 더 좋은 방법이 있습니까?

+1

(https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk 여기에 대한 좋은 답변을 참조하십시오 ? hl = en) too :) –

+1

렌더링은 "각도 실행 컨텍스트"를 종료 한 후에 발생합니다. https://docs.angularjs.org/guide/scope#integration-with-the-browser-event-loop를 참조하십시오. JavaScript 코드의 실행 만 측정하고 렌더링은 측정하지 않는 것 같습니다. –

+0

시도한 타이밍 방법을 모르지만 [사용자 타이밍 API] (http://www.w3.org/TR/user-timing/) ('mark (...)'및 'measure (...)'? [아직 완전히 지원되지는 않았습니다.] (http://caniuse.com/#feat=user-timing),하지만 시도해 볼게요. –

답변

0

보다 정확한 것을 원할 경우 new Date().getTime()을 사용하면 마이크로 초 단위로 시간을 알 수 있습니다.

또한 performance.now()이 여기에 적용 가능하며 훨씬 정확합니다. 그래서 https://stackoverflow.com/a/21120901/965907

: 당신은 [Batarang]에 모습을 가질 수

var startTime = new Date().getTime(); 
    tableservice.setColumns(columns); 
    var dataView = new DataView(); 
    dataView.setItems(datarows); 
    $scope.columns = tableservice.getColumns(); 
    $scope.dataView = dataView; 
    console.log(new Date().getTime() - startTime); 
관련 문제