在Linux系統上使用C/C++語言開發程式的時候可以透過引用unistd.h
來呼叫sysconf
函數,在程式執行階段(runtime)獲取指定的系統組態資訊,例如記憶體大小、CPU數量、最大行程(process)數或各種的最大字數。然而,如果是想要在Node.js上抓取這些系統組態資訊,該怎麼做呢?
node-sysconf
node-sysconf
是一個使用Node.js 8之後才支援的N-API所開發的模組,使用Rust語言引用libc
,使得Node.js也可以間接存取sysconf
函數。
npmjs.com
npm 安裝指令
npm install node-sysconf
使用方法
使用模組提供的sysconf
函數可以取得指定名稱的系統組態,用法如下:
import { sysconf } from "node-sysconf";
sysconf(系統組態名稱);
系統組態名稱
皆是以_SC_
開頭來命名的,詳細名稱與對應的值表示的意義請自行參閱sysconf
的手冊(man page)。
舉例來說,_SC_PAGE_SIZE
可以取得記憶體每個頁(page)的大小(單位為byte),而_SC_PHYS_PAGES
則可以取得實體記憶體總共有幾個頁。
import { sysconf, _SC_PAGE_SIZE, _SC_PHYS_PAGES } from "node-sysconf";
console.log(sysconf(_SC_PAGE_SIZE)); // 4096
console.log(sysconf(_SC_PHYS_PAGES)); // 8212478
console.log(sysconf(_SC_PAGE_SIZE) * sysconf(_SC_PHYS_PAGES)); // 33638309888, which means total RAM is 33638309888 bytes