Методы оптимизации AngularJS?
меньше длительность $digest цикла - выше производительность и отзывчивость системы. Количество ватчеров к слову тут не причем. Только время за которое они все выполняются влияют (у вас может быть один ватчер который делает что-то сложное, и тысяча простых справятся быстрее).
В целом же... все что связано с обработкой данных (фильтрация коллекций, формирование других коллекций и т.д.) должно выполняться в сервисах (ну или на худой конец в контроллерах).
При выводе больших часто меняющихся коллекций использую track by (весьма редко на самом деле, только когда DOM часто перерисовывается).
Во вью же все должно быть максимально просто, декларативненько, никаких дико ужасных условий. В целом при грамотной архитектуре проблем с производительностью не много.
Ну и опять же. Никаких преждевременных оптимизаций. Запустите профайлер, найдите узкие места и тогда только думайте.
В моей практике самые большие проблемы с производительностью возникали из-за того, что я забывал делать отмену watch и bind событий при уничтожении директив. Нужно делать scope.$on('$destroy', function() {}); Если такие директивы попадали в большие ng-repeat браузер иногда просто умирал.
Добавлю, что у Angular есть настройка, которая по дефолту делает возможным получать scope из DOM элемента и добавляет классы типа ng-scope, ng-isolated-scope. Это может быть полезно при разработке и тестировании, но для продакш версии лучшее ее отключить, это немного улучшить перфоманс.myApp.config(['$compileProvider', function ($compileProvider) {
  $compileProvider.debugInfoEnabled(false);
}]);
Подробнее: https://docs.angularjs.org/guide/production