本文实例讲述了node . js中过程进程的概念和child_process子进程模块的使用方法。分享给大家供大家参考,具体如下:
进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象。
节点。js中有一个过程全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息。
一、过程对象
控制台。日志(“可执行文件绝对路径”,process.execPath); 控制台。日志('版本号',process.version); 控制台。日志(“依赖库的版本号”,process.versions); 控制台。日志(“运行平台,process.platform); 控制台。日志(“标准输入流”,process.stdin); 控制台。日志(“标准输出流”,process.stdout); 控制台。日志(“标准错误流”,process.stderr); 控制台。日志(“命令行参数数组”,process.argv); 控制台。日志('系统环境变量”,process.env); 控制台。日志(“进程ID ', process.pid); 控制台。日志(“标题”,process.title); 控制台。日志(“处理器架构,process.arch); >之前通过memoryUsage()查看内存使用量:
console.log (process.memoryUsage ()); >之前
-
<李> rss表示进程占用的内存,包括堆、栈、代码段。李>
<李> heapTotal表示堆占用的内存。李>
<李> heapUsed表示堆使用的部分。李>
<李>外部表示外部使用的部分,c++对象占用的。李>
对象,字符串,闭包存放于堆内存,变量存放于栈内存,js源代码存放于代码段。
console.log (process.memoryUsage ()); 让buf=缓冲区。alloc (1024 * 1024 * 1024); console.log (process.memoryUsage ()); >之前当我们通过缓冲创建一个足够大的变量时,这时只能借助于外部内存,使用c++去完成.node.js能够使用的内存上限是1.7 g。
使用目录()修改程序当前的工作目录,通过鹿()获取当前工作目录。
console.log (process.cwd ());//修改程序当前的工作目录 process.chdir (“. ./?; console.log (process.cwd ()); >之前通过退出()来结束进程
process.exit (0); >之前调用exit()结束进程时,会触发“退出”事件。
的过程。(“退出”功能(){ console.log(“程序退出了'); }); process.exit (0); >之前通过杀死()给指定进程发送信号
SIGINT程序终止信号,当用户按下ctrl + c时发的出,将通知进程终止。
SIGTERM程序结束信号,通知程序正常退出,杀死()方法默认就是这个信号。
process.kill(过程。pid、“SIGINT”); >之前通过正常运行时间()返回程序运行的时间
console.log (process.uptime ()); >之前通过hrtime()计算代码段运行时间,hrtime()返回一个数组,第一个表示秒,第二个表示纳秒
我们开始=process.hrtime (); 让金额=0; (我=0;我& lt;1000000000;我+ +){ +=我总和; } 我们结束=process.hrtime(开始); 控制台。日志(“耗时:”,[0],“秒”); >之前当程序抛出一个没有被捕获的异常时,触发“uncaughtException”事件。
的过程。(“uncaughtException”功能(err) { console.log(“捕获了一个未被处理的异常”); console.log(错); });//调用一个未定义的函数 测试(); >之前进程接收到一个信号时,会触发信号事件,我们可以监听到该事件。
//让标准输入流处于流动模式,让程序无法退出 process.stdin.resume (); 的过程。(SIGINT,函数(){ console.log(“程序退出”); process.exit (0); }); 的过程。(SIGTERM,函数(){ console.log(“程序结束”); }); >之前二,子进程模块child_process的使用
我们都知道node . js是单线程的,如果某一个操作需要消耗大量资源和时间,会导致程序整体性能下降。
node . js中过程进程的概念和child_process子进程模块的使用方法示例