最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

为什么(新的Date())的ToString()是如此之慢的Node.js?

运维笔记admin18浏览0评论

为什么(新的Date())的ToString()是如此之慢的Node.js?

为什么(新的Date())的ToString()是如此之慢的Node.js?

我打了一下用Node.js的我刚开始写新的东西,并坚持我,我的简单的“控制台”的应用程序需要相当长的时间作出反应。这个应用程序加载一个5MB的JSON文件,把它变成一个对象,但一切仍没有考虑的时间显著量。我进一步搜索(在一个相当短而简单的代码),使我的结论,这个单行:

this.generated_on = ( new Date() ).toString();

大约需要2.5秒执行。进一步的调查使我更不明白了。我已经将它修改为:

this.generated_on = new Date();
this.generated_on = this.generated_on.toString();

(之间console.timeLogs)中,用线toString()是接管2秒执行所述一个。于是,我再次修改了代码:

this.generated_on = new Date('2019-02-04 20:00:00');
this.generated_on = this.generated_on.toString();

而结果是周围的其他方式。 toString()只用了2毫秒,同时创造Date对象了超过2秒。

为什么这么慢?为何如此不同的结果?任何更快的方式得到格式化的当前时间字符串? (我不那么在意的执行时间为这个项目,因为它可以离线工作,但仍然是我的错误)。

回答如下:

我觉得你的开发环境是关闭或东西。为什么你的机器以缓慢的方式运行的代码,我不能告诉你。我不能复制你说的问题。

我试图基准你有上面的代码。

https://repl.it/@act/HotpinkFearfulActiveserverpages

转到这里,并尝试点击运行按钮,在顶部。

下面是我看到的结果

// Case Togehter: 
// this.generated_on = ( new Date() ).toString();
// Case Separately:
// this.generated_on = new Date();
// this.generated_on = this.generated_on.toString();

Together x 332,222 ops/sec ±7.75% (44 runs sampled)
Separtely x 313,162 ops/sec ±8.48% (43 runs sampled)

332222个操作/秒装置的操作耗时1/332222秒平均。

发布评论

评论列表(0)

  1. 暂无评论