В поисках потенциальных узких мест в AngularJS я нашел это:
var KEYWORD_REGEX = /^((ng:|[$_a-z])[\w\-_]+)/;
KEYWORD_REGEX, похоже, имеет большое количество вызовов, так как вызывается внутри цикла:
_.forEach(tokens, function(token) { (line 72)
Который сам находится внутри внутреннего цикла:
_.forEach(doc, function(value, key) { (line 97)
Который также находится во внутреннем цикле! :
_.forEach(docs, function(doc) { (line 88)
Итак, у нас есть вложенный цикл на два уровня глубже: производительность O (N) ^ 3.
Этот вопрос: Как мне измерить Производительность цикла дайджеста моего приложения AngularJS? предлагает запустить профиль процессора с использованием инструментов разработчика Chrome для измерения производительности, но я не думаю, что он достаточно детализирован, чтобы измерить производительность определенного раздела кода.
Я не уверен, какой код написать, чтобы попасть в этот файл. Из чтения комментария к файлу keywords.js:
* This processor extracts all the keywords from each document and creates
* a new document that will be rendered as a JavaScript file containing all
Кажется, что любой файл с поддержкой angular должен вызывать keywords.js, поскольку angularjs сканирует каждый документ на наличие директив? Для измерения производительности подход запускает AngularJS из исходного кода, изменяет циклы, описанные выше, чтобы включить время (используя getTime() ), которое измеряет завершение каждого цикла, создает множество директив AngularJS и запускает приложение?
src/, согласно соглашению. Указанный вами файл находится по адресу/docs/config/processors. Это скрипт Node и, очевидно, имеет отношение к документации фреймворка, а не к самому фреймворку. - person Estus Flask   schedule 20.12.2016