получить общее количество привязок на угловой странице

Я пытаюсь создать монитор производительности для угловых (2-6) приложений моей компании. одна из вещей, которую мы хотим показать, — это общее количество привязок на странице в любой момент времени. ВСЕ ОНИ. Любые идеи, как это сделать?


person the great wizard of none    schedule 17.06.2018    source источник
comment
Надеюсь, эта ссылка поможет вам stackoverflow.com/questions/446892/   -  person Rohit.007    schedule 17.06.2018
comment
что ты уже испробовал?   -  person Dragonthoughts    schedule 17.06.2018
comment
Ну, я знаю, как перемещаться по дереву представлений. у них есть свойство привязки с числом, но это число считается «ngFor» равным 1, независимо от того, сколько у него узлов....   -  person the great wizard of none    schedule 17.06.2018
comment
@ Rohit.007 спасибо, но это мало помогло. Мне нужно что-то конкретно для угловой привязки. Тем не менее, это дало мне несколько отличных идей о том, как показать всем моим слушателям! так что спасибо за это :-)   -  person the great wizard of none    schedule 17.06.2018
comment
Я помню, что в AngularJS было полезно поддерживать низкое количество привязок, но я не видел упоминания об этом в Angular (2-6). Можете ли вы дать некоторое представление о том, как вы будете использовать метрику?   -  person    schedule 18.06.2018
comment
@ eric99 Ну, как мы видим, чем больше привязок, тем больше кода выполняется на каждом тике. ты не думаешь? Его можно использовать, чтобы дать программисту четкое представление о весе его или ее страницы в NGZone и процессе CD.   -  person the great wizard of none    schedule 18.06.2018
comment
Конечно. Это способ сделать это в AngularJS, но метрика привязки, похоже, исчезла с радара с Angular2.   -  person    schedule 18.06.2018
comment
Вы можете начать с этого кода и продвигаться к решению constructor(cd: ChangeDetectorRef) { cd._view.def.nodes.forEach((n) => { n.bindings.forEach((b) => { console.log(b.name); }) }) }. Вам нужно будет вызывать его рекурсивно для каждого дочернего представления. Вам понадобятся знания, описанные в этих статьях blog.angularindepth.com/ и blog.angularindepth.com/   -  person Max Koretskyi    schedule 18.06.2018
comment
Спасибо @AngularInDepth.com! Это только о коде, который у меня уже есть. Проблема в том, что ngfor считается за единицу, не считая динамического содержимого, а trackby также считается за единицу, поэтому при просмотре с ngfor с trackby с 1000 связанными элементами вы получаете только 2 в массиве.   -  person the great wizard of none    schedule 18.06.2018
comment
@thegreatwizardofnone, создайте демонстрацию stackblitz   -  person Max Koretskyi    schedule 20.06.2018
comment
@AngularInDepth.com вместо этого мы решили подсчитывать изменения DOM через собственный API Chrome. Но я написал запрос функции после разговора с Робом Вормалдом об этом. Большое спасибо за ваше время и усилия, ребята!   -  person the great wizard of none    schedule 23.06.2018
comment
@thegreatwizardofnone, пожалуйста. Можете ли вы дать мне ссылку на запрос функции?   -  person Max Koretskyi    schedule 26.06.2018
comment
@AngularInDepth.com конечно! Вот он: github.com/angular/angular/issues/24612#issuecomment- 399303697   -  person the great wizard of none    schedule 26.06.2018