1. Использовать {{::value}} синтаксис, когда нет необходимости обновлять данные (доступно в 1.3.0 beta)
Пример
2. Делать больше DOM манипуляций в директиве
Вместо 
<div ng-show=”something”></div>
$scope.something = false;
$scope.someMethod = function () {
  $scope.something = true;
};
Использовать 
var menu = $element.find(‘ul’);
menu.hide();
$scope.someMethod = function () {
  menu.show();
};
3. По минимуму использовать фильтры в DOM
Вместо 
{{ array | filter : expression : comparator }}
Использовать 
scope.result = $filter('filter')(array, expression, comparator);
4. В часто вызываемых функциях mousemove, mouseover, mouseout и т.п. не использовать лишний раз $apply или $digest