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而言,则需要我们在不使用它的时候手工为为它解除引用。

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

百度SDK Unity导出Android Studio工程与安卓的交互

一、安卓与Unity的通信与交互首先打开Android Studio新建工程名字随便起,然后在工程中新建Module,选择Android Library 后面名字也随便写。 在Unity安装目录中找到classes.jarD:\Program Files\Unity 5.5.1p4\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mo...

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

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

JavaScript中的内存管理

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

Unity3D游戏开发基础面试题整理

Python、Java、Unity游戏开发、大数商、UI/UE交互设计等各类IT互联网教育。 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。