Analisi dei profili
Un profilo, secondo wikipedia, "è una forma di analisi dinamica del programma che misura, ad esempio, lo spazio (memoria) o la complessità temporale di un programma, l'utilizzo di particolari istruzioni, o la frequenza e la durata delle chiamate di funzione". Con ciò, un profiler è un programma per generare un profilo di questo tipo allo scopo di un'analisi immediata o successiva.
Nella maggior parte dei casi, un profiler viene utilizzato dagli sviluppatori per individuare problemi di prestazioni o colli di bottiglia nel loro codice. I profiler sono progettati per consentire agli sviluppatori di scavare fino alla singola riga di codice che è in esecuzione lenta o che utilizza molte risorse. Per quanto potente possa essere il profiling per individuare opportunità di ottimizzazione del codice, è spesso utilizzato dagli sviluppatori in ambienti di sviluppo solo dopo che c'è già un problema serio. Anche se uno sviluppatore volesse eseguire la creazione di profili in produzione, può essere difficile, al massimo, ottenere l'accesso alla produzione per ottenere un profiler collegato.
Instana AutoProfile™ si collega automaticamente al processo in esecuzione senza richiedere riavvii o riconfigurazioni. Con AutoProfile,, gli utenti possono analizzare costantemente le prestazioni a livello di codice, individuare i colli di bottiglia nel codice di produzione, visualizzare le prestazioni tramite un grafico a fiamma e approfondire i "percorsi caldi" dell'applicazione.
Per analizzare i profili, vai alla vista Unbounded Analytics. Fai clic sul percorso di navigazione "Applicazioni", quindi seleziona "Profili".
Analizzare costantemente le prestazioni a livello di codice in ambiente di produzione

AutoProfile crea automaticamente e continuamente un profilo del modo in cui il codice viene eseguito in produzione, senza alcuna configurazione richiesta. AutoProfile è progettato per identificare i colli di bottiglia nel codice e riportare i profili di contesa e CPU. I profili della CPU consentono agli sviluppatori di scoprire quale metodo è ad alta intensità di CPU in modo che possano ottimizzare in modo efficiente e preciso il loro codice. I profili di contesa mostrano quali direttive sincronizzate stanno causando lunghi tempi di attesa, un uso inefficiente delle capacità di multithreading della CPU e che portano a prestazioni complessive non ottimali.
Visualizza sotto forma di grafico a fiamma

AutoProfile visualizza tutti i profili come un grafico di fiamma rendendo più semplice vedere esattamente dove vengono utilizzate le risorse. Le barre del grafico di fiamma sono ridimensionate in base alla quantità di risorse consumate. Inoltre, il grafico è ordinato in ordine cronologico. Instana arricchisce i profili con metriche utili quali l'utilizzo della CPU e l'attività del GC. Fornire il contesto necessario per comprendere l'impatto del profilo.
Trova il "percorso principale" nella visualizzazione ad albero

Instana offre una visualizzazione ad albero di tutti i profili: basta cliccare sul segno più per espandere l'area di interesse. Questo rende facile e veloce trovare il 'percorso caldo' nel tuo codice. Ad esempio, è possibile fare rapidamente clic sui profili per espandere un percorso che mostra quale codice sta utilizzando il 30% dell'utilizzo totale della CPU in modo da poter migliorare e ottimizzare il proprio codice.
Immergiti nel codice (solo Java )

Aprire il codice esatto che sta causando il problema dal grafico della fiamma o dalla vista della struttura ad albero. Puoi filtrare in base al tuo nome pacchetto o classe per trovare rapidamente dove inizia il tuo codice nel percorso del codice. Basta fare clic sul link per immergersi direttamente nella linea di codice su cui è necessario concentrarsi.

Il prodotto « AutoProfile » di Instana si integra perfettamente con le funzionalità di ottimizzazione delle prestazioni di Instana, le migliori del settore. AutoProfile e Unbounded Analytics™ mettono a disposizione degli sviluppatori tutte le informazioni necessarie, consentendo loro di individuare immediatamente la causa principale di qualsiasi problema o conflitto di risorse. Questo rende l'ottimizzazione delle prestazioni delle applicazioni e dei servizi, per fornire la migliore esperienza cliente possibile.
Tipi di profili
Le funzionalità di creazione profili dipendono in larga parte dalle lingue, dai runtime e dalle versioni. A causa delle differenze di implementazione dei meccanismi di campionamento e degli strumenti, i tipi di profilo e la relativa disponibilità differiscono tra i linguaggi e i runtime. I tipi di profilo attualmente supportati sono riepilogati nelle seguenti tabelle.
In termini di struttura, i profili sono simili. Sono costituiti da percorsi di esecuzione del codice spesso rappresentati in un grafico di chiamate o in una struttura ad albero di chiamate con alcune statistiche per ciascun nodo, ad esempio il numero di hit, kilobyte o millisecondi. Un percorso di codice è una traccia di chiamate di metodo simili a una traccia di stack di eccezioni.
Java profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU mostrano l'uso della CPU per percorso codice. Il profiler CPU funziona in modo statistico campionando l'esecuzione del processo. |
| Contesa | I profili di contesa mostrano dove il codice sincronizzato è in attesa di altri thread. L'aggregazione del tempo di attesa viene eseguita per percorso codice. |
Node.js profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU mostrano l'uso della CPU per percorso codice. Il profiler CPU funziona in modo statistico campionando l'esecuzione del processo. |
| Chiamate asincrone | I profili di chiamata asincrona mostrano una vista aggregata delle attese di chiamata asincrona per i percorsi di codice, dove vengono effettuate queste chiamate asincrone. |
| Velocità di allocazione memoria | I profili della velocità di allocazione della memoria mostrano quanta memoria è stata allocata per unità di tempo aggregata per percorsi di codice, dove è stata effettuata l'allocazione. |
Golang Profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU mostrano l'uso della CPU per percorso codice. Il profiler CPU funziona in modo statistico campionando l'esecuzione del processo. |
| Blocco delle chiamate | I profili di chiamata di blocco mostrano una vista aggregata di chiamate di blocco, ad esempio chiamate in attesa di un IO, un canale, ecc. per percorso codice. |
| Allocazione della memoria | I profili di allocazione della memoria mostrano l'utilizzo della memoria corrente in base al percorso del codice, dove è stata effettuata l'assegnazione. |
Python profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU mostrano l'uso della CPU per percorso codice. Il profiler CPU funziona in modo statistico campionando l'esecuzione del processo. |
| Blocco delle chiamate | I profili di chiamata di blocco mostrano una vista aggregata delle attese di chiamata per percorso codice. |
| Velocità di allocazione memoria | I profili della velocità di allocazione della memoria mostrano quanta memoria è stata allocata per unità di tempo aggregata per percorsi di codice, dove è stata effettuata l'allocazione. |
Ruby profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU mostrano l'uso della CPU per percorso codice. Il profiler CPU funziona in modo statistico campionando l'esecuzione del processo. |
.NET Core profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU mostrano l'uso della CPU per percorso codice. Il profiler CPU funziona in modo statistico campionando l'esecuzione del processo. |
PHP profili
| Tipo di profilo | Descrizione |
|---|---|
| Utilizzo della CPU | I profili CPU visualizzano l'utilizzo della CPU per percorso codice. Un profiler CPU esegue un campionamento statistico dell'esecuzione del processo. |