#javascript #angular #google-chrome-devtools
#javascript #угловой #google-chrome-devtools
Вопрос:
Я ищу, ng.profiler.timeChangeDetection()
чтобы помочь профилировать приложение Angular. Однако есть некоторые вещи, которые остаются неясными.
Когда я запускаю ng.profiler.timeChangeDetection({ record: true })
консоль, я получаю вывод, который выглядит примерно так.
common_tools.ts: 64 запустил 15 циклов обнаружения изменений common_tools.ts: 65 34,61 мс на проверку профиля «Обнаружение изменений». Обнаружение изменений профиля завершено. ChangeDetectionPerfRecord {msPerTick: 34.61200000019744, numTicks: 15}
Если я профилирую chrome, а затем вхожу ng.profiler.timeChangeDetection({ record: true })
через консоль chrome dev tools, я вижу что-то вроде этого.
Итак, я вижу, что он появился для обнаружения изменения профиля, но с какой точки?
Документы (https://angular.io/api/platform-browser/enableDebugTools ) показывают, как выполнить команду, но они не вдаются в подробности относительно того, что происходит на самом деле. Я ищу некоторую ясность в отношении..
- Что
ng.profiler.timeChangeDetection({ record: true })
на самом деле делает запуск? ng.profiler.timeChangeDetection({ record: true })
Эмулирует ли обновление страницы?- Запускает ли это обнаружение изменений во всем приложении?
- В какой момент отслеживаются изменения? Это говорит мне, что было 15 циклов обнаружения изменений, но какое событие вызвало эти циклы?
Комментарии:
1. Это может объяснить часть того, что вы хотите знать: профилирование обнаружения угловых изменений
2. @Ouroborus, я видел эту статью, но я все еще не был уверен, какие компоненты вычисляются в таймингах? Странно, что он может получить любые тайминги, просто выполнив команду в инструментах разработки. Должно быть, оно запускает какое-то событие, чтобы вызвать обнаружение изменений в любых компонентах, с которыми оно сравнивается? Возможно, это просто
ChangeDetectorRef
внутреннее использование и запускdetectChanges()
события? В этом я не уверен и надеялся, что, может быть, кто-нибудь знает.3.
common_tools.ts
Похоже, что он вызывает несколько циклов обнаружения изменений (вызывая.tick()
5 или более раз, пока не пройдет 500 мс), а затем сообщает среднее время, которое они заняли.