// Post repeat directive for logging the rendering time angular.module('myApp').directive('postRepeatDirective', ['$timeout', function($timeout) { return function(scope, element, attrs) { var timerName = attrs.postRepeatDirective || 'postRepeatDirective'; if (scope.$first) { if (window.console && window.console.time) { console.time(timerName); } else { window.a = new Date(); // window.a can be updated anywhere if to reset counter at some action if ng-repeat is not getting started from $first } } if (scope.$last) { $timeout(function() { if (window.console && window.console.time) { console.time(timerName); console.timeEnd(timerName); } else if (window.console) { console.log("## DOM(" + timerName + ") rendering list took: " + (new Date() - window.a) + " ms"); } }); } }; } ]); // Use in HTML: … OR …