var声明并传入函数时的node js内存使用情况
node js memory usage when var declared and passed in function
async function getDataFromExternalAPI(bodyPayload) {
// send request and get data.
}
var bodyPayload = {a: 1, b: {}};
await getDataFromExternalAPI(bodyPayload);
对
await getDataFromExternalAPI({a: 1, b: {}});
使用第一种方法对内存有什么影响?
第一种方法在可重写性和可维护性方面更清晰,但它有缺点吗?
What are memory implication of using the first method?
没有什么值得用它来决定用哪种方式写的(见下面的详细信息)
First method is cleaner in terms of readability and maintainability but does it comes with downside ?
没有缺点。选择使代码最易于阅读和维护的选项。
What if I make is const?
使其成为const
不会真正改变它在这里的内存使用。当您不需要再次分配给符号时,总是首选 const
,因为这有时是对解释器和优化器的有用提示,但它不会改变此示例中的内存使用。
仅供参考,var
几乎不再是首选。使用 let
或 const
.
对象作为参数作为指针传递。当对象作为参数传递时,不会创建对象的副本。
您的两个代码示例都只是构造一个对象,然后将其作为参数传递。第一个是给它一个命名符号,这样你的例子中这个顶级范围内的其他代码就可以访问它并且它的生命周期可能会更长,因为这个范围内的其他代码可以在它被垃圾收集之前访问它。
第二个例子也是构造一个对象然后将它作为参数传递,但是因为它不是这个范围内的命名符号,所以对象唯一可以使用的地方是在函数中(除非它是以某种方式从函数返回或从函数内部传递到其他持久作用域)。
使用哪种实际上只是首选编程风格的问题,哪种编程风格可以使任何给定情况更具可读性和可维护性。一般来说,如果对象仅用作参数并且对象构造不需要许多单独的步骤并且没有其他代码使用相同的对象并且定义简单,我更喜欢第二个选项。
现在,如果这个对象的构建是一项复杂的工作,或者将有意义的名称应用于参数对象具有真正的代码清晰度价值,我会优化代码,以便我可以清楚地编写复杂的工作,并且可能涉及在顶级范围内定义一个符号,然后在该对象上设置属性。所以,我正在优化任何让代码阅读起来最清晰的东西,因为两者之间没有有意义的内存含义。
async function getDataFromExternalAPI(bodyPayload) {
// send request and get data.
}
var bodyPayload = {a: 1, b: {}};
await getDataFromExternalAPI(bodyPayload);
对
await getDataFromExternalAPI({a: 1, b: {}});
使用第一种方法对内存有什么影响? 第一种方法在可重写性和可维护性方面更清晰,但它有缺点吗?
What are memory implication of using the first method?
没有什么值得用它来决定用哪种方式写的(见下面的详细信息)
First method is cleaner in terms of readability and maintainability but does it comes with downside ?
没有缺点。选择使代码最易于阅读和维护的选项。
What if I make is const?
使其成为const
不会真正改变它在这里的内存使用。当您不需要再次分配给符号时,总是首选 const
,因为这有时是对解释器和优化器的有用提示,但它不会改变此示例中的内存使用。
仅供参考,var
几乎不再是首选。使用 let
或 const
.
对象作为参数作为指针传递。当对象作为参数传递时,不会创建对象的副本。
您的两个代码示例都只是构造一个对象,然后将其作为参数传递。第一个是给它一个命名符号,这样你的例子中这个顶级范围内的其他代码就可以访问它并且它的生命周期可能会更长,因为这个范围内的其他代码可以在它被垃圾收集之前访问它。
第二个例子也是构造一个对象然后将它作为参数传递,但是因为它不是这个范围内的命名符号,所以对象唯一可以使用的地方是在函数中(除非它是以某种方式从函数返回或从函数内部传递到其他持久作用域)。
使用哪种实际上只是首选编程风格的问题,哪种编程风格可以使任何给定情况更具可读性和可维护性。一般来说,如果对象仅用作参数并且对象构造不需要许多单独的步骤并且没有其他代码使用相同的对象并且定义简单,我更喜欢第二个选项。
现在,如果这个对象的构建是一项复杂的工作,或者将有意义的名称应用于参数对象具有真正的代码清晰度价值,我会优化代码,以便我可以清楚地编写复杂的工作,并且可能涉及在顶级范围内定义一个符号,然后在该对象上设置属性。所以,我正在优化任何让代码阅读起来最清晰的东西,因为两者之间没有有意义的内存含义。