gpt4 book ai didi

javascript - coffeescript 比 javascript 快吗?

转载 作者:太空狗 更新时间:2023-10-29 13:17:25 25 4
gpt4 key购买 nike

Javascript 无处不在,在我看来,它的重要性不断增加。大多数程序员都会同意,虽然 Javascript 本身很丑陋,但它的“领地”确实令人印象深刻。凭借 HTML5 的功能和现代浏览器的速度,通过 Javascript 部署应用程序是一个有趣的选择:它可能是您可以获得的跨平台产品。

自然结果是交叉编译器。主要的可能是 GWT,但还有其他几种选择。我最喜欢的是 Coffeescript,因为它仅在 Javascript 之上添加了一个薄层,并且比例如 GWT 更“轻量级”。

只有一件事一直困扰着我:虽然我的项目很小,但性能一直是一个重要的话题。这是一段话

The GWT SDK provides a set of core Java APIs and Widgets. These allow you to write AJAX applications in Java and then compile the source to highly optimized JavaScript

Coffeescript 也优化了吗?由于 Coffeescript 似乎大量使用了非常见的 Javascript 功能,我担心它们的性能如何比较。

您是否遇到过与 Coffeescript 相关的速度问题?你知道一个好的基准比较吗?

最佳答案

很抱歉重新提起一个老话题,但这也与我有关。我决定进行一些测试,我知道的最简单的性能测试之一是将连续的值写入数组,随着数组的增长,内存以熟悉的方式消耗,并且“for”循环在现实生活中很常见,可以考虑相关。

经过几次转移注意力后,我发现 coffeescript 最简单的方法是:

newway = -> [0..1000000]
# simpler and quicker than the example from http://coffeescript.org/#loops
# countdown = (num for num in [10..1])

这使用闭包并返回数组作为结果。我的等价物是这样的:

function oldway()
{
var a = [];
for (var i = 0; i <= 1000000; i++)
a[i] = i;
return a;
}

如您所见,结果是相同的,并且它也以类似的方式增长数组。接下来,我在 chrome 中每次分析 100 次并取平均值。

newway() | 78.5ms
oldway() | 49.9ms

Coffeescript 慢了 78%。我反驳说“你写的 CoffeeScript 最终运行起来和你写的 JS 一样快(而且通常更快)”(Jeremy Ashkenas)


附录:我也对“在 JS 中总是存在一对一等价物”这一流行观点表示怀疑。我试图用这个重新创建我自己的代码:

badway = ->
a = []
for i in [1..1000000]
a[i] = i
return a

尽管相似,但事实证明它仍然慢了 7%,因为它添加了额外的方向检查(增量或减量),这意味着它不是直接翻译。

关于javascript - coffeescript 比 javascript 快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com