背景
最近开始接触NodeJS,发现process
(process对象用于处理与当前进程相关的事情)对象内有个API,及process.memoryUsage()
方法返回一个对象,该对象描述以字节为单位的Node.js进程的内存使用情况。
function getMe() {
var mem = process.memoryUsage()
console.log(mem)
}
getMe();
打印出的数据为:
heapTotal
和heapUsed
代表V8的内存使用情况。 external
表示绑定到由V8管理的JavaScript对象的C ++对象的内存使用情况。rss
常驻集大小,是进程在主内存设备(即总分配内存的子集)中占用的空间量,包括堆,代码段和堆栈。
该堆是一个对象,字符串和封闭的存储位置。变量存储在堆栈中,而实际的JavaScript代码位于 代码段中。
使用Worker
线程时,rss
它将是一个对整个进程有效的值,而其他字段将仅引用当前线程。
其实在浏览器中,Window
对象中也有一个是用来查看分析网站性能的及window.performance
window.performance
Web Performance API允许网页访问某些函数来测量网页和Web应用程序的性能,包括 Navigation Timing API和高分辨率时间数据。
方法
performance.mark()
通过一个给定的名称,将该名称(作为键)和对应的DOMHighResTimeStamp
(作为值)保存在一个哈希结构里。该键值对表示了从某一时刻(译者注:某一时刻通常是 navigationStart 事件发生时刻)到记录时刻间隔的毫秒数。(译者注:该方法一般用来多次记录时间,用于求得各记录间的时间差)
performance.now()
该方法返回一个DOMHighResTimeStamp
对象,该对象表示从某一时刻(译者注:某一时刻通常是 navigationStart 事件发生时刻)到调用该方法时刻的毫秒数。
属性
performance.timing
是一个PerformanceTiming
对象,包含延迟相关的性能信息。
performance.navigation
是一个 PerformanceNavigation
对象,该对象表示在当前给定浏览上下文中网页导航的类型(译者注:TYPE_BACK_FORWARD,TYPE_NAVIGATE, TYPE_RELOAD,TYPE_RESERVED)以及次数。
performance.memory
在Chrome中添加的一个非标准扩展。
这里的performance.memory
就和上面的process.memoryUsage()
类似功能。
包含的信息:
(1)jsHeapSizeLomit:内存大小限制
(2)totalJSHeadSize:可使用的内容
(3)userdJSHeadSize:已使用的内容