2014-09-25 20 views
24

Questo è davvero solo per soddisfare la curiosità e vedere se c'è un modo migliore per farlo.Node.js - Ottieni il numero di processori disponibili

Nella mia casella di Windows 8, l'oggetto process.env del nodo ha una proprietà NUMBER_OF_PROCESSORS, sulla mia macchina Linux no.

Ovviamente diverse piattaforme hanno variabili di ambiente diverse, questo è un dato di fatto, ma sembra che NUMBER_OF_PROCESSORS sarebbe una cosa utile avere a prescindere.

La mia soluzione rapida per Linux stava generando un processo figlio per eseguire il comando nproc, ma mi piacerebbe evitare di utilizzare una richiamata per ottenere semplicemente il numero di processori. Sembra che ci debba essere un modo più semplice.

Cosa hanno fatto altre persone per risolvere questo problema?

risposta

34

'costruito in nodo e chiamato os.cpus()

restituisce un array di oggetti contenenti informazioni su ogni CPU/core installato: modello, velocità (in MHz), e tempi (un oggetto contenente il numero di millisecondi le CPU/core spesi in: user, nice, sys, idle e irq).

La lunghezza di questa matrice è il numero di "processori" nel sistema. La maggior parte dei sistemi ha una sola CPU, quindi è il numero di core di quella CPU.

+4

Questo elenco include anche core virtuali. Un Intel i7 mostrerà 8 core logici su 4 core fisici grazie alla tecnologia Hyper-Threading. –

41
var os = require('os'), 
cpuCount = os.cpus().length; 
+3

perché è stato votato? è corretto. – chovy

Problemi correlati