Производительность - Date.now () против Date.getTime ()

var timeInMs = Date.now();

per MDN

против.

var timeInMs = new Date(optional).getTime();

per MDN .

Есть ли какая-то разница между ними, кроме синтаксиса и возможности установить дату (не текущую) с помощью необязательного параметра во второй версии?

Date.now () быстрее - посмотрите jsperf

81 голос | спросил user656925 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 20 Sep 2012 21:00:21 +0400 2012, 21:00:21

6 ответов


0

Это то же самое (семантически редактировать ; производительность немного выше с .now()):

var t1 = Date.now();
var t2 = new Date().getTime();

Однако значение времени из любого уже созданного экземпляра Date замораживается во время его создания (или в любое время /дата была установлена). То есть, если вы сделаете это:

var now = new Date();

, а затем подождите некоторое время, последующий вызов now.getTime() сообщит время в тот момент, когда переменная была установлена.

ответил Pointy 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 20 Sep 2012 21:04:32 +0400 2012, 21:04:32
0

Они фактически эквивалентны, но вы должны использовать Date.now(). Это яснее и примерно в два раза быстрее.

Редактировать: источник: http://jsperf.com/date-now-vs- новая дата

ответил jrajav 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 20 Sep 2012 21:05:43 +0400 2012, 21:05:43
0

Когда вы делаете (new Date()).getTime(), вы создаете новый объект Date. Если вы делаете это неоднократно, это будет примерно в 2 раза медленнее, чем Date.now ()

Тот же принцип должен применяться к Array.prototype.slice.call(arguments, 0) против [].slice.call(arguments, 0)

ответил Gregory Magarshak 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 27 Sep 2013 21:46:18 +0400 2013, 21:46:18
0

Да, это правильно; они эффективно эквивалентны при использовании текущего времени.

ответил Brett Zamir 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 20 Sep 2012 21:03:43 +0400 2012, 21:03:43
0

Иногда желательно, чтобы некоторая переменная отслеживания времени сохранялась в формате объекта Date, а не просто как миллисекунды, чтобы иметь доступ к методам Date без повторного создания экземпляра. В этом случае Date.now () по-прежнему выигрывает у нового Date () и т. П., Но только на 20% в моем Chrome и незначительно в IE.

Смотрите мой JSPERF на

timeStamp2.setTime(Date.now()); // set to current;

против.

timeStamp1 = new Date(); // set to current;

http://jsperf.com/new-date-vs-settime

ответил SashaK 29 SunEurope/Moscow2013-12-29T02:02:18+04:00Europe/Moscow12bEurope/MoscowSun, 29 Dec 2013 02:02:18 +0400 2013, 02:02:18
0

Интересное наблюдение (Chrome /Firefox).

Date.now() === new Date().getTime(); // true (usually)

Date.now() === new Date().getTime(); // false (sometimes!)

ответил daGo 31 MonEurope/Moscow2018-12-31T10:50:28+03:00Europe/Moscow12bEurope/MoscowMon, 31 Dec 2018 10:50:28 +0300 2018, 10:50:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132