JavaScript中的内存管理

JavaScript中的内存管理

使用具备垃圾收集机制的语言编写程序,开发人员一般不必关心内存管理的问题。但是,JavaScript在进行内存管理及垃圾收集时面临的问题还是有点与众不同的。其中最主要的一个问题,就是分配给Web浏览器的可用内存数量通常要比分配给桌面应用程序的少。这样做的目的主要是出于安全方面的考虑,目的是防止运行JavaScript的网页耗尽全部系统内存而导致系统崩溃。内存限制问题不仅影响给变量分配内存,同时还会影响调用栈以及在一个线程中能够同时执行的语句数量。

因此,确保占用最少的内存可以让页面获得更好的性能。而优化内存占用的最佳方式,就是为执行中的代码只保存必要的数据。一旦数据不再有用,最好通过将其值设置为null来释放其引用—这种做法叫做解除引用(dereferencing)。这一做法适用于大多数全局变量和全局对象的属性。局部变量会在它们离开执行环境时自动被解除引用。如下:

function createPerson(name){
 var localPerson = new Object();
 localPerson.name = name;
 return localPerson;
}
var globalPerson = createPerson("Nicholas");
//手工解除globalPerson的引用
globalPerson = null;

上述代码中,变量globalPerson取得了createPerson()函数返回的值。在createPerson()函数内部,我们创建了一个对象并将其赋值给局部变量localPerson,然后又为该对象添加了一个名为name的属性。最后,当调用这个函数时,localPerson以函数值的形式返回并赋值给全局变量globalPerson。由于localPerson在createPerson()函数执行完毕后就离开了其执行环境,因此无需我们显式地去为它解除引用。但是对于全局变量globalPerson而言,则需要我们在不使用它的时候手工为为它解除引用。

不过,解除一个值的引用并不意味着自动回收该值所占用的内存。解除引用的真正作用是让值脱离执行环境,以便垃圾处理器下次运行时将其回收。

Java开发者必知必会的20种常用类库和API

《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。

程序员专用的几个高质量 Chrome 插件

当然,就是从提高自己的效率开始,为自己减轻压力,节省更多时间去做别的事。今天我就给大家推荐几个,我个人感觉用的不错的,能够提高效率的,而且是有关程序员工作使用的Chrome浏览器插

JavaScript中的内存管理

使用具备垃圾收集机制的语言编写程序,开发人员一般不必关心内存管理的问题。但是,JavaScript在进行内存管理及垃圾收集时面临的问题还是有点与众不同的。

mysql使用小结

3、用户管理注:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作4、权限管理mysql对于权限这块有以下限制。

解决 Mysql outfile 的报错问题!

Mysql可使用intooutfile参数把表中数据导出到文件,例如可用以下命令把test表的数据导出到test.txtSELECT*FROMnewdb.testINTOOUTFI