Я не думаю, что существует какая-либо система, в которой JavaScript будет автоматически отслеживать время запуска функции и время остановки функции. Это, вероятно, то, что вы должны будете добавить сами. Если это то, что вам нужно, вы можете рассмотреть возможность использования PHP для обслуживания вашего JavaScript и использования регулярного выражения для поиска начала и конца каждой функции с помощью регулярного выражения или чего-то в этом роде.
Ваш RegExp может выглядеть так (полностью не проверено, поэтому вам придется экспериментировать):
/function [A-Za-z_$][A-Za-z0-9_$]*{(.*?)}/i
Получив доступ к внутренней части функции, вы можете заменить это значение функцией, чтобы отслеживать ее начало и конец, обернутые вокруг исходного определения функции.
Преимущество состоит в том, чтобы делать именно то, что вы хотите, не беспокоясь о том, как изменить функционирование вашего js-кода. Это то, что сервер будет обрабатывать полностью.
Либо так, либо вместо прямого вызова функции используйте функцию-обертку:
function wrapFunction( func, context, argList )
{
// Replace with however you are storing this.
console.log( new Date().getTime() );
func.apply( context, argList );
console.log( new Date().getTime() );
}
Преимущество состоит в том, что вы будете намного чище, чем когда сервер обновит ваш JS для вас. К сожалению, это также означает необходимость переписывать JS вручную.
Я бы порекомендовал просто адаптировать синтаксис ведения журнала и использовать его. Большинство регистраторов выводят метку времени, контекст, уровень и конкретное сообщение. Если вы просто вызовете регистратор в начале и конце функции, он сделает именно то, что вы ищете. Кроме того, поскольку многие из них можно настраивать, вы сможете отображать их на консоли JS в Firefox, отправлять информацию на сервер или полностью отключать, если захотите.
Список регистраторов JS здесь:
JavaScript логгеры
К сожалению, это потребует от вас обновления всего вручную, но кажется, что это самый простой способ получить 90% того, что вы ищете, из коробки.