Скорость работы сравнения Date

81
04 июля 2021, 00:30

Возник вопрос по сравнению дат.

Сделал тесты. getTime победил. Тесты делались в Chrome v76.

Соответственно вопросы.

  • Почему сравнение непосредственно дат происходит так медленно?
  • Почему valueOf работает медленнее, чем getTime?

Код, используемый для теста

const d1 = new Date('2019-09-02T11:50:32.473Z'); 
const d2 = new Date('2019-09-03T11:50:32.474Z'); 
let r; 
 
console.time('date'); 
for (var i = 0; i < 1000000; i++) { 
  if (d1 > d2) { 
    r = true; 
  } else { 
    r = false; 
  } 
} 
console.timeEnd('date'); 
 
 
console.time('getTime'); 
for (var i = 0; i < 1000000; i++) { 
  if (d1.getTime() > d2.getTime()) { 
    r = true; 
  } else { 
    r = false; 
  } 
} 
console.timeEnd('getTime'); 
 
console.time('valueOf'); 
for (var i = 0; i < 1000000; i++) { 
  if (d1.valueOf() > d2.valueOf()) { 
    r = true; 
  } else { 
    r = false; 
  } 
} 
console.timeEnd('valueOf');

UPD

Интересует время работы в node.js.

Результаты выполнения тестов:

date: 141.500ms

getTime: 2.147ms

valueOf: 7.896ms

READ ALSO
Исходные данные React-Redux приложения

Исходные данные React-Redux приложения

Есть ли какой-нибудь способ загружать приложение сразу с некими исходными данными полученными с сервера, а не подгружать их AJAX-ом в самом...

102
Вытащить кусок строки регуляркой

Вытащить кусок строки регуляркой

Совсем не знаком с регулярными выражениямиНужна помощь

98
Анимация из массива (JS animation)

Анимация из массива (JS animation)

https://dribbblecom/SSAdesign11 есть вот такая анимашка, клиент хочет подобную, но имажек там около 150, создавать подобное путём css анимации, конечно же возможно,...

95
Как программно делать css Inject chrome extension?

Как программно делать css Inject chrome extension?

Начал делать простенькое расширения для одного сайтаФункционал: инъекция пользовательских стилей на сайт

89