javascript - 在 JavaScript/nodejs 中,访问变量与访问变量的属性之间是否存在速度差异?

标签 javascript node.js

我本质上是在编写一个小脚本,需要将多个不同的文件保存为变量,然后根据请求返回它们。我正在尝试编写尽可能最快的版本(最微小的差异实际上对我来说很重要)。

就编码而言,如果我将文件全部保存为变量的属性,则会更简单/更短,因为这样我就可以执行以下操作:

var files = {}
readfile(path, name){
  fs.readFile(path, function(err, buf){    //nodejs function
    files[name] = buf;
  });
}

并对我保存到内存中的每个文件使用相同的函数。

但是,当稍后访问文件时,返回变量属性(而不是变量自身变量)是否会花费更多时间?节省的最短时间实际上会对我的应用程序产生影响,因此我愿意使用不同的变量一次又一次地重写相同的代码块,如果这能让事情变得稍微快一些的话。

或者还有另一种方法可以做与代码示例相同的事情,只是传递一个变量名来替换我不知道的files[name]

最佳答案

访问属性可能会更慢,但当前的引擎已经过优化,您甚至无法测量它。当您进行 I/O 时,这没有任何区别,您永远不会在单个进程中每秒读取 2 亿个文件。对于所有问题,请将变量/方法/属性访问视为免费

无论如何,为了以防万一,这里有一个性能对比:http://jsperf.com/var-vs-property

关于javascript - 在 JavaScript/nodejs 中,访问变量与访问变量的属性之间是否存在速度差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146952/

相关文章:

node.js - 如何向 message.content 添加多个参数?

javascript - 获取触发 $watch 的对象属性

javascript - 避免 IE 中的 "Stop Script?"对话框

javascript - Kendoui 模板错误

javascript - 使用 Threejs 创建 LED

javascript - 如何在 Parse-SDK-JS 中创建具有关系的新 Parse.Object

javascript - 如何获取特定 css 列的内容

javascript - 带有 websocket 的 Node.js socket.io

node.js - 为什么 Nodejs 应用程序无法在 Windows IIS 上运行

api - 如何在 Node.js 中最好地创建 RESTful API