2014-11-29 2 views
6

Я недавно унаследовал некоторый код AngularJS (я не могу опубликовать код) и заметил огромную задержку при начальной загрузке. Это совершенно неприемлемо, и мне нужно его оптимизировать. Используя хронологию Chrome, я заметил, что существует много сценариев, которые не имеют особого смысла.Бенчмаркинг страницы или ее контроллера

enter image description here

Я попытался с помощью Batarang, но даже самое длинное выражение просто функция даты и был незначительным по сравнению со всем остальным. У меня есть чувство, что его контроллер с невероятно жирной и спагетти, и мне нужно как-то измерить этот контроллер или по крайней мере выяснить, что является узким местом, прежде чем я начну рефакторинг.

+1

Посмотрите здесь, чтобы удалить отладочную информацию из исполняемого кода. https://docs.angularjs.org/guide/production#! – Brocco

ответ

0

Что я в итоге сделал, просто обещаю и вычитаю разницу во времени unix, чтобы получить представление о том, сколько времени прошло. Существуют и другие инструменты, такие как benchmarkjs, но это все, что мне нужно, чтобы выяснить, где проблема.

var oldTime = (new Date).getTime(); 
deferred = $q.defer() 
deferred.promise.then(function() { 
    # Code in here 
}).then(function() { 
    console.log("Time taken: ", ((new Date).getTime() - oldTime)) 
}) 
deferred.resolve(); 
0

Попробуйте с открытым исходным кодом Chrome плагин Угловое производительность, вы можете эталонные конкретные контроллеры угловых приложений: https://github.com/Linkurious/angular-performance