node . js中过程进程的概念和child_process子进程模块的使用方法示例

  

本文实例讲述了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子进程模块的使用方法示例