gpt4 book ai didi

node.js - 为 V8 优化 CoffeeScript 生成的 JS

转载 作者:搜寻专家 更新时间:2023-11-01 00:46:36 25 4
gpt4 key购买 nike

coffee-生成以下简单代码片段的 JS:

console.log 'b' if 'b' in arr

var __indexOf = [].indexOf || function(item) {
for (var i = 0, l = this.length; i < l; i++) {
if (i in this && this[i] === item) return i;
} return -1;
};

if (__indexOf.call(arr, 'b') >= 0) {
console.log('b');
}

我能理解为什么会这样。 IE 不支持 indexOf,我们希望确保我们的 CS 代码在所有 浏览器上顺利运行。但是,在为 Node.js 服务器编写代码时,我们确切地知道 JS 引擎支持什么 (ECMA-262, 5th edition),因此我们不需要上述技巧。

我不是很熟悉不同的 JavaScript 实现,但我敢肯定这不是 coffee -c 由于浏览器不兼容而产生的唯一非最佳代码,如果我们考虑所有这些问题在具有数千个并发连接的生产服务器中,它们会为代码增加大量不必要的开销。

有没有办法解决这个问题?现在越来越多的 Node.js 代码是用 CS 编写的,随着 SourceMap 的出现,这个数字会更大......

最佳答案

这几乎不是最佳选择; __indexOf 声明在开始时被评估一次,并立即解析为 [].indexOf,即使用底层实现的 Array.prototype.indexOf。当然,这并不是一笔巨大的开支。

我需要查看一些“非最佳”代码的其他示例,但我确信它们中的大多数都属于同一个篮子。并发连接数根本无法衡量这种影响。

关于node.js - 为 V8 优化 CoffeeScript 生成的 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10773769/

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