Javascript 性能-Date.now()与Date.getTime()的比较

Javascript 性能-Date.now()与Date.getTime()的比较,javascript,Javascript,vs 是的 在第二个版本中,除了语法和通过可选设置日期(而不是当前日期)的功能之外,两者之间还有什么区别吗 Date.now()更快-查看是的,这是正确的;在使用当前时间时,它们实际上是等效的。这些东西是相同的(从语义上编辑;使用.now())性能会更好一些: 但是,任何已创建的Date实例的时间值在其构建时(或在其设置为的任何时间/日期)被冻结。也就是说,如果您这样做: var t1 = Date.now(); var t2 = new Date().getTime(); 然后等待一段时间,

vs

是的

在第二个版本中,除了语法和通过可选设置日期(而不是当前日期)的功能之外,两者之间还有什么区别吗


Date.now()更快-查看

是的,这是正确的;在使用当前时间时,它们实际上是等效的。

这些东西是相同的(从语义上编辑;使用
.now()
)性能会更好一些:

但是,任何已创建的
Date
实例的时间值在其构建时(或在其设置为的任何时间/日期)被冻结。也就是说,如果您这样做:

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

然后等待一段时间,对
now.getTime()
的后续调用将告诉您设置变量时的时间。

它们实际上是等效的,但您应该使用
Date.now()
。它更清晰,速度大约是原来的两倍

编辑:来源:

当您执行
(new Date())。getTime()
您正在创建一个新的日期对象。如果您重复这样做,它将比Date.now()慢2倍左右


同样的原则应该适用于
Array.prototype.slice.call(arguments,0)
vs
[].slice.call(arguments,0)

有时最好以日期对象格式保留一些时间跟踪变量,而不只是以毫秒为单位,以便在不重新实例化的情况下访问日期方法。在这种情况下,Date.now()仍然胜过new Date()或类似的东西,尽管在我的Chrome浏览器上只有20%左右的优势,在IE浏览器上只有一小部分优势

请在上查看我的JSPERF

var now = new Date();
vs


这是因为
Date(可选).getTime()在获取当前时间之前必须分配空间才能获取新的日期对象?可能是的。我希望它更多地与日期构造函数所做的一切有关,而不是与对象的实际分配有关。是的,我草率地补充了这一点-我指的是分配以及创建对象所需的一切。对于任何关心的人来说,Date.now()在早于IE9的Internet Explorer版本中不起作用。我自己并不关心它的价值,你可以添加中提到的兼容性垫片来制作Date.now()在IE上工作你认为在程序开始时创建一个Date对象,然后只更新该Date对象会更有效吗(
dateObj.setTime(Date.now())
)或者在每次执行需要访问
date
方法(例如
dateObj.getMinutes()
)的异步操作时创建新的日期对象?@Taurus modern JavaScript运行时非常擅长对象创建和垃圾收集。除非您正在开发某种实时游戏内核,否则根本没有理由担心它。编写看起来不错且不脆弱的代码。不应该说谢谢,但应该说谢谢(我希望我没有不止一次这样做)。
var t1 = Date.now();
var t2 = new Date().getTime();
var now = new Date();
timeStamp2.setTime(Date.now()); // set to current;
timeStamp1 = new Date(); // set to current;