Как получить вывод из console.timeEnd() в консоли JS?
Я хотел бы получить строку, возвращенную с console.timeEnd('t')
в моей Javascript-консоли Google Chrome.
В этом примере ниже я бы хотел, чтобы одна переменная содержала "t: 0.276ms"
> console.time('t'); console.timeEnd('t');
t: 0.276ms
< undefined
Это что-то выполнимое?
Ответы
Ответ 1
В Google Chrome 23.0.1262.2 (Official Build 155904) dev это похоже на невозможное. Единственный способ, с помощью которого я смог вычислить время с точностью, - это использовать window.performance.webkitNow()
Вот простой пример:
var start = window.performance.now();
...
var end = window.performance.now();
var time = end - start;
Подробнее на http://updates.html5rocks.com/2012/08/When-milliseconds-are-not-enough-performance-now
Ответ 2
просто вы можете использовать
var begin=Date.now();
something here ...;
var end= Date.now();
var timeSpent=(end-begin)/1000+"secs";
это самый простой способ, и он будет работать на любом браузере не только на хроме.
Ответ 3
Маленький помощник, чтобы сделать некоторое время. timerEnd
возвращает время в мс, также объект timers
содержит информацию о том, сколько раз использовался таймер с этим именем, сумма всех измеренных времен и среднее значение измерений. Я нахожу это весьма полезным, так как измеренное время операции зависит от многих факторов, поэтому лучше всего измерить его несколько раз и посмотреть на среднее значение.
var timers = {};
function timer(name) {
timers[name + '_start'] = window.performance.now();
}
function timerEnd(name) {
if (!timers[name + '_start']) return undefined;
var time = window.performance.now() - timers[name + '_start'];
var amount = timers[name + '_amount'] = timers[name + '_amount'] ? timers[name + '_amount'] + 1 : 1;
var sum = timers[name + '_sum'] = timers[name + '_sum'] ? timers[name + '_sum'] + time : time;
timers[name + '_avg'] = sum / amount;
delete timers[name + '_start'];
return time;
}
Ответ 4
Функция console.timeEnd() помещает время в консоль и возвращает значение
поэтому вы можете сохранить его в переменной
var c = console.timeEnd('a');
c/1000+'s';
или вы можете сохранить эту переменную в объекте окна для последнего использования
window.c = console.timeEnd('b');
window.c