1
首先从nodejs官方网站下载对应版本的nodejs包。
本篇我们要安装的ubuntu14.04 64位系统上,固选择linux 64位版本。
2
然后将包上传到ubuntu14.04服务器上。
通过xftp工具上传,待上传进度为100%时候执行下一步操作。
3
进入上传包所在目录。(进入目录命令为:cd +目录的绝对路径)
在终端窗口输入tar -zxvf +文件名,对压缩包进行解压操作。
4
将解压后的文件夹内容移动到我们想要的目录。
本篇,我们将文件夹内容移动到了/usr/local/node目录下。
然后更改node文件夹内容权限为755。
5
然后进入node文件夹目录。进入bin目录下。
执行脚本./node -v 或者./npm -v都可正常显示版本信息。
我们对node基本安装已经完成。
6
如果我们想在任意路径下都能执行node命令,则需配置环境变量。
首先执行命令nano ~/.bashrc,对此文件进行修改。
7
在文件末尾,添加两行
export NODE=/usr/local/node
export PATH=${NODE}/bin:$PATH
然后执行保存。
8
执行命令source ~/.bashrc。
然后任意路径下执行node -v可以看到已经可以返回版本信息了。
至此,nodejs基础环境全部配置完毕。
node基于v8构建,所以在node中使用的js对象基本上都是通过v8自己的方式来进行分配和管理的。
在v8中,所有的js对象都是通过堆来进行分配的。
process.memoryUsage()
{
rss:24473600,
heapTotal: 7331840,
heapUsed: 5736952,
external: 8727
}
v8内存分代
v8中,主要将内存分为新生代和老生代。新生代中为存活时间较短的对象,老生代中为存活时间较长的对象。
新生代垃圾回收:
新生代中的对象主要通过Scavenge算法进行垃圾回收。将新生代中的内存空间一分为二,处于使用状态的为From空间,处于闲置状态的为To空间。在进行垃圾回收时,检查From空间的存活对象并复制到To空间,非存活对象占用空间释放。之后From和To空间角色对调。
对象晋升:
如果一个对象经历过一次新生代垃圾回收,或者To空间的内存占比超过25%,则此对象从新生代中移动到老生代中,此过程称为晋升。
老生代垃圾回收:
主要采用Mark-Sweep(标记清除)和Mark-Compact(标记整理)两种方式进行垃圾回收。
标记清除在标记阶段遍历堆中的所有对象,并标记活着的对象。随后的清除中只清除没有被标记的对象。会产生内存碎片。为解决这个问题,标记整理被提了出来,在对象被标记为死亡后,在整理的过程中,将活着的对象往一端移动,移动完成后直接清理掉边界外的内存。v8中混合使用这两种方法。一般在空间不足以对从新生代晋升过来的对象进行分配时,才使用标记整理。
高效使用内存:
在js中无法立即回收的内存有闭包和全局变量引用这两种情况。此情况会导致新生代中的对象数量增多。