Buffer的使用:
Buffer.alloc(10,1);
申请内存
//值被限定到0~255 循环加到256 整数部分
Buffer的使用:
Buffer.alloc(10,1);
申请内存
//值被限定到0~255 循环加到256 整数部分
Buffer使用:
通过new 来实现
不建议使用
通过 Buffer.from();来实现
new 形参 数字 为 申请的占用内存大小
堆外内存:
buffer 缓冲区对象 存放二进制数据。
类似于一个数组对象 10个数的数组
老生代对象回收算法:
Mark swep 标记回收
遍历当前所有对象 死了的对象 把它清除掉
内存碎片 垃圾 导致空间不连续
Mark Compact
把不占用的对象 全都堆一起 整理内存
耗时长,性能损耗大
新生代对象回收:
新 老
新又分为 from 和 to 生存周期较短
检查 from存活的对象给to
from 和 to 转换
to 也相同
空间换时间
to空间占用了25% 就转移数据到老生代
分代式垃圾回收:
在函数内 创建一个对象 生命周期很短,执行完就会回收掉。
全局内的对象,没使用 直接回收掉
V8-内存管理:
所有JS对象通过堆来分配
查看内存分配方法:
process.memoryUsage();
## 申请缓冲区
new Buffer(" ");
Buffer.from(" "); //只能传入字符串,默认用utf-8,中文占三个字节,每个字节范围0-255
Buffer.alloc(10,1); //类似c++vector
107有关加载自定义模块时是否用路径,
不使用路径,程序先在node_modules文件夹先遍历找,没有的话会依次往父节点找,比较费时。
comand js规范:
加载模块
node应用由模块构成
1.
1.异步执行流程,内部使用线程池;
2.
1.
1.
1.核心模块
2.
module.exports外部接口
1.b/s browser/servers(浏览器、服务器架构)
2.c/s climt/servers(客户端、服务器架构)
3.commond
1.事件驱动
2.异步io
3.
JS运行在hou'du
哈哈?