我正在使用JavaScript(Express)编写服务器端应用程序。所以我必须验证一个大的字符流(基本64字符串)。我知道我想做什么以及如何但我有与性能相关的问题。
考虑上传的字符串非常大(最多5 MB)。我已经编写了几个应该进行验证的函数,但我不知道引擎盖后面发生了什么。
function validate(str) {
....
return bool;
}
var b64_string = '......'; // <- string can be 5 megabytes
if(validate(b64_string) {
doSomething(b64_string);
}
如果这是C,则将为validate(str)函数分配一个堆栈,并且传递的变量将有5mb的内存。
但是JavaScript引擎会发生什么?有没有办法发送指针&#39;功能所以内存消耗不会太大? Ť
提前致谢!
答案 0 :(得分:2)
对象通过引用传递。
我认为整数和字符串(等)不,所以要小心这一点。
考虑将您的字符串添加到对象哈希引用中,然后您可以通过引用向下传递链接。
例如:
var hashRef = {};
hashRef.b64_string = '......'; // <- string can be 5 megabytes
function validate(hashRef) {
....
return bool;
}
if(validate(hashRef)) {
doSomething(hashRef);
}