Guida allo sviluppo della guida

Trova il killer delle prestazioni

L'ottimizzazione delle prestazioni dei servizi online è quasi superstiziosa. Un gruppo di programmatori ha affrontato una grande quantità di codice incomprensibile e ha indovinato se l'altra parte stava utilizzando tutta la CPU. Passa molto tempo a registrare i registri, sfogliando gli enormi registri giorno e notte, cercando di trovare il killer delle prestazioni.

Tuttavia, con fibjs, tutto questo diventerà più semplice. Perché fibjs ha un potente supporto per cpu e memory profiler, ed è molto comodo da usare.

Log

Fibjs è estremamente semplice per avviare il profiler della cpu, basta aggiungere l'opzione --prof all'avvio. L'intervallo di log predefinito è 1000 ms. Con l'approfondimento dell'ottimizzazione, sarà necessario analizzare i log con maggiore precisione. A questo punto, è possibile utilizzare --prof-interval impostare l'intervallo. Nell'esempio seguente, il registro di lavoro di fibjs viene registrato ogni 10 ms.

1
fibjs --prof --prof-interval=10 main.js

Registro di elaborazione

Dopo che l'operazione è terminata normalmente, o il processo è terminato con ctrl_c, verrà generato un file di log nella directory corrente, il nome del file è fibjs-xxxx.log , in questo momento, puoi usare --prof-process elaborare il log generato:

1
fibjs --prof-process fibjs-xxxx.log prof.svg

Al termine dell'operazione aprire prof.svg con un browser per visualizzare il diagramma di fiamma di questo log:prof È possibile fare clic per visualizzare l'immagine a dimensione intera. Nell'immagine a dimensione intera, è possibile utilizzare il mouse per controllare informazioni più dettagliate: prof.svg .

Interpretazione del diagramma di fiamma

Nel grafico della fiamma generato, ogni blocco di colore rappresenta un punto di registrazione. Più lungo è il blocco di colore, più volte è stato registrato, ogni riga rappresenta uno strato di stack di chiamate e più strati, più strati vengono chiamati; Il posizionamento della pila è invertito, più basso è il blocco di colore, più la funzione originale.

Esistono due tipi di blocchi di colore, uno è rosso e l'altro è blu. Nel profiler di fibjs, il rosso rappresenta le operazioni JavaScript e il blu rappresenta le operazioni io o native. A seconda del problema che devi risolvere, l'area su cui devi concentrarti sarà diversa. Ad esempio, se devi risolvere il problema dell'elevata occupazione della CPU, devi prestare attenzione al blocco di colore rosso in questo momento; e se la tua applicazione, l'occupazione della CPU non è elevata, ma la risposta è lenta, devi prestare attenzione al blocco di colore blu. Più grande è il blocco di colore nella parte superiore, più importante deve essere interessato e ottimizzato.