javascript - 为什么卡住的 "enum"变慢了?

标签 javascript node.js

为了访问数组中的数据,我创建了一个类似于 enum 的变量,以便为字段提供人类可读的标识符。

var columns = { first: 0, second: 1 };
var array = ['first', 'second'];
var data = array[columns.first];

当我发现 Object.freeze 时,我想将其用于枚举以使其无法更改,并且我希望 VM 能够利用此信息发挥其优势。

事实证明,测试在 Chrome 和 Node 上变慢,但在 Firefox 上稍快(与通过数字直接访问相比)。

代码可在此处获得:http://jsperf.com/array-access-via-enum

以下是来自 Node 的基准测试(对应于 JSPerf 测试):

  fixed Number: 12ms
  enum: 12ms
  frozenEnum: 85ms

V8 是否还没有很好的实现,或者对于我的用例来说,这种方法是否有一些次优的地方?

最佳答案

我在 Firefox 20 和 IE 10 中进行了测试,它的速度要快得多,而 IE 10 的速度稍快且更一致。

所以我的回答是不,V8 还没有很好的实现

关于javascript - 为什么卡住的 "enum"变慢了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16057837/

相关文章:

javascript - 处理管道和订阅 firebase Query 对象的类似方法是什么?

javascript - 将图像与文本叠加、保存并共享

javascript - 比较 JavaScript 中的文件对象

node.js - npm 警告无效配置代理配置必须是带有 'http://' 的完整 url

node.js - Node : Set different domain name on different port

javascript - TypeError [ERR_INVALID_ARG_TYPE] : The "original" argument must be of type Function. 接收类型未定义

javascript - 如何访问对象的属性?

javascript - 如何从桌面通知中覆盖或删除签名 "electron.app.Electron"

javascript - Nodejs Smartsheet API 尝试将行移动到另一个工作表时出错

javascript - 如何在使用 app.use(express.static ('public' )); 时测试 Express 应用程序