https://www.jb51.net/article/164566.htm
两种内存释放
//申请内存
var pInputData=Module._malloc(1000);
//**使用中*/
//释放内存
Module._free(pInputData);
pInputData=null;
//取址
var auData=new Uint8Array(eventData.data);
///使用中
//置空
auData=null;
前言
web中的内存处理是浏览器底层来负责。
与C++不同的是使用前不需要申请,使用后无需释放。大内存可能需要切片处理。
- 像C语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()用于分配内存和释放内存。
- 对于JavaScript来说,会在创建变量(对象,字符串等)时分配内存,并且在不再使用它们时“自动”释放内存,这个自动释放内存的过程称为垃圾回收。
- 自动垃圾回收机制的存在,让大多Javascript开发者感觉他们可以不关心内存管理,所以会在一些情况下导致内存泄漏。
内存生命周期
JS 环境中分配的内存有如下声明周期:
1.内存分配:当我们声明变量、函数、对象的时候,系统会自动为他们分配内存
2.内存使用:即读写内存,也就是使用变量、函数等
3.内存回收:使用完毕,由垃圾回收机制自动回收不再使用的内存
1.JS的内存分配
1."变量" 分配内存:为了不让程序员费心分配内存,JavaScript 在定义变量时就完成了内存分配
/**************分配内存******************/
var n = 123; // 给数值变量分配内存
var s = "azerty"; // 给字符串分配内存
var o = {
a: 1,
b: null
}; // 给对象及其包含的值分配内存
var a = [1, null, "abra"]; // 给数组及其包含的值分配内存(就像对象一样)
function f(a){
return a + 2;
} // 给函数(可调用的对象)分配内存
someElement.addEventListener('click', function(){
someElement.style.backgroundColor = 'blue';
}, false);// 函数表达式也能分配一个对象
2. "对象"分配内存:有些函数调用结果是分配对象内存
var d = new Date(); // 分配一个 Date 对象
var e