* 只監聽必要的變量(例如:在進行實時通訊時,不要在每次接收到消息時觸發?`$digest`?loop)
* 對于那些只初始化一次并不再改變的內容, 使用一次性 watcher?[`bindonce`](https://github.com/Pasvaz/bindonce)?對于早期的 AngularJS 或者一次性 bindings 對于 AngularJS >=1.3.0.
* 盡可能使?`$watch`?中的運算簡單。在單個?`$watch`?中進行繁雜的運算將使得整個應用延緩(由于JavaScript的單線程特性,`$digest`?loop 只能在單一線程進行)
* 當監聽集合時, 如果不是必要的話不要深度監聽. 最好使用?`$watchCollection`, 對監聽的表達和之前表達的估值進行淺層的檢測.
* 在?`$timeout`?設置第三方參數為 false 來跳過?`$digest`?循環 當沒有變量被?`$timeout`?回調函數所影響.
* 當面對超大不太改變的集合,?[使用 immutable data structures](http://blog.mgechev.com/2015/03/02/immutability-in-angularjs-immutablejs/).