自然的结果是交叉编译器.主要可能是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相关的速度问题吗?
你知道一个很好的基准比较吗?
解决方法
经过几个红色的鲱鱼,我发现咖啡的最简单的方法是:
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; }
你可以看到结果是相同的,它也以类似的方式增长了一个数组.接下来我分别镀铬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
原文地址:https://www.jb51.cc/js/152156.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。