1. 程式人生 > >nodejs嵌入式應用

nodejs嵌入式應用

想要 star hot 腳本 var org man use fun

1)從nodejs v4版本開始已經發布了適用於嵌入式的運行環境,我的板子是cortex a5, armv7體系結構的,用最新版node-v9.9.0-linux-armv7l.tar.gz

node-v9.9.0-linux-arm64.tar.gz 21-Mar-2018 20:05 17909317
node-v9.9.0-linux-arm64.tar.xz 21-Mar-2018 20:07 10789576
node-v9.9.0-linux-armv6l.tar.gz 21-Mar-2018 15:19 17149093

node-v9.9.0-linux-armv6l.tar.xz 21-Mar-2018 15:37 10302588
node-v9.9.0-linux-armv7l.tar.gz 21-Mar-2018 11:40 17190798
node-v9.9.0-linux-armv7l.tar.xz

官網https://nodejs.org/download/release

文檔手冊https://nodejs.org/api/

中文社區https://cnodejs.org/

2) 安裝
cp node-v4.9.1-linux-armv7l.tar.gz /usr/local/

cd /usr/local/
tar xvf node-v4.9.1-linux-armv7l.tar.gz

3)也可以自己編譯源碼
./configure --prefix=/home/dong/nodejs --dest-cpu=arm --without-snapshot --without-ssl
make
make install

4)添加環境變量
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/node-v4.9.1-linux-armv7l/bin"
export LD_LIBRARY_PATH=/usr/local/node-v4.9.1-linux-armv7l/lib:$LD_LIBRARY_PATH

5)測試實例 http_server_test.js
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
console.log("nodejs start listen 8888 port!");

6)top 資源監控
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

v4.9.1
581 root 20 0 82616 18660 11968 S 0.0 7.4 0:03.52 node

v4.2.6
420 root 20 0 82760 18636 12476 S 0.0 7.4 0:02.09 node

v4.4.5
463 root 20 0 82880 18992 12792 S 0.0 7.6 0:02.08 node

v6.14.1
518 root 20 0 69668 20888 15188 S 0.0 8.3 0:02.55 node

v9.9.1
518 root 20 0 71240 25456 18840 S 0.0 10.2 0:02.55 node

PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
966 783 root S 81288 32.0 0 0.0 node http_server.test.js

ulimit -s 512
980 783 root S 50568 19.9 0 0.0 node http_server.test.js

但是使用ulimit的一個後果就是它會影響到同一環境(同一shell或者終端)下後續啟動的所有程序,如果修改成啟動時設置的話就會影響到整個系統,這顯然不是想要的。有兩個方法可以能消除這個影響:

1)為需要修改棧大小的程序單獨編寫一個shell腳本,在程序啟動前調用ulimit -s。因為子shell的環境不會影響到父shell,所以設置不會改變外部環境。
2)在程序運行前執行ulimit -s修改需要的棧大小,在程序運行後再次執行ulimit -s修改回原來的棧大小。

還是用v4.9.1劃算,長期支持版,占資源少,也不影響功能實現。

nodejs嵌入式應用