Trova le righe di codice più costose con Amazon CodeGuru

Amazon CodeGuru è uno strumento per gli sviluppatori che utilizza la tecnologia del machine learning per aiutarti a migliorare la gestibilità del codice e a rilevare le righe di codice più costose. Esegue revisioni automatizzate del codice e fornisce suggerimenti sulle prestazioni delle applicazioni.

Amazon CodeGuru Reviewer

Amazon CodeGuru Reviewer rileva i problemi presenti nel codice Java e Python e fornisce suggerimenti su come risolverli. Ad esempio, CodeGuru Reviewer rileva la mancata conformità alle best practice per l'utilizzo delle API e dei kit SDK di AWS. Inoltre, identifica problemi di concorrenza, perdite di risorse, vulnerabilità di sicurezza ed effettua la convalida degli input errati. Per iniziare la revisione del codice, puoi associare i repository di codice esistenti su GitHub, GitHub Enterprise, Bitbucket o AWS CodeCommit a CodeGuru.

Suggerimenti automatizzati per richieste pull

CodeGuru Reviewer identifica i problemi di gestibilità del codice e i rischi per la sicurezza (tra cui le migliori 10 categorie OWASP) analizzando automaticamente le richieste pull del codice sorgente per rilevare problemi critici. Quindi fornisce suggerimenti intelligenti per la risoluzione di difetti di codice direttamente all'interno delle richieste pull. CodeGuru Reviewer identifica problemi di gestibilità del codice in nove ampie categorie e consente al tuo team di sviluppo di mantenere standard elevati di codifica nel processo di sviluppo dei software:

• Best practice di AWS: l'utilizzo corretto delle API AWS (ad esempio, polling, paginazione)
• Best practice di Java e Python: l'utilizzo corretto del linguaggio Java e Python comune e le funzionalità delle librerie
• Concorrenza: rileva le sincronizzazioni mancanti che determinano funzionalità errate o una sincronizzazione eccessiva che causa problemi di prestazioni.
• Gestibilità del codice: identifica le complessità del codice o eventuali caratteristiche del codice sorgente che rendono difficile la manutenzione del codice nel tempo
• Perdita di risorse: gestione corretta delle risorse (ad esempio, il rilascio di connessioni di database)
• Perdita di informazioni sensibili: perdita di informazioni personali (ad esempio, i dettagli della registrazione della carta di credito)
• Best practice di codifica del codice: controlla i parametri e cerca linee di codice che potrebbero creare bug (ad esempio, dimenticare di controllare che un oggetto sia nullo prima di impostarlo, riassegnare un oggetto sincronizzato o dimenticare di inizializzare una variabile su un percorso di eccezione).
• Clonazione del codice: identifica il codice duplicato che potrebbe essere consolidato per una migliore gestione del codice
• Convalida input: verifica la presenza di dati dannosi o non validi provenienti da fonti non attendibili

Suggerimenti automatizzati per richieste pull
 Fai clic per ingrandire

Rilevamento della sicurezza
Codeguru Reviewer consente di migliorare la sicurezza del codice e fornisce suggerimenti per le best practice. Utilizza il ragionamento automatizzato per analizzare il flusso di dati dall'origine al sink e tra più funzioni, al fine di rilevare vulnerabilità di sicurezza difficili da individuare. Security Detector supporta Java attraverso Java 11 e identifica diverse categorie di problemi, come:

1. Best practice di AWS API Security: puoi controllare la sicurezza API per AWS EC2 e KMS
2. Best practice di Java Crypto Library: puoi controllare se Javax.Crypto.Cipher viene inizializzato e richiamato correttamente
3. Applicazioni Web sicure: puoi controllare i problemi di sicurezza relativi alle app Web, come gli inserimenti LDAP
4. Perdita di informazioni sensibili: puoi controllare se si verifica una perdita di informazioni personali o sensibili
5. Best practice sulla sicurezza AWS (ad esempio, suggerimenti su AWS Crypto): puoi controllare se il codice soddisfa le best practice AWS

Puoi passare alla console CodeGuru e attivare un'analisi di sicurezza dell'intero repository o della base di codice caricando i manufatti di origine e compilazione.

Suggerimenti

Puoi visualizzare tutte le revisioni del codice nella pagina della console "Revisioni del codice" (sezione del revisore). La pagina elenca tutte le informazioni sulla revisione del codice come lo stato della revisione del codice, il repository, il numero di suggerimenti e molto altro. Puoi fare clic su una revisione di codice completata correttamente per visualizzare i dettagli dei suggerimenti, cercare suggerimenti e visualizzare il numero di righe analizzate. Puoi anche lasciare un feedback sui suggerimenti di CodeGuru facendo clic sulle icone con i pollici al di sotto del suggerimento.

Richiesta pull
 Fai clic per ingrandire
Analisi completa del repository

Con CodeGuru, puoi ottenere suggerimenti sulla revisione del codice basati su machine learning per tutte le righe di codice nei repository associati (non solo le modifiche incrementali tramite richieste pull) in un ramo del codice specificato. Puoi eseguire scansioni complete del repository per ottenere suggerimenti sulla revisione del codice durante la sua migrazione, la due diligence del codice e le iniziative periodiche di manutenibilità del codice. Nella console CodeGuru, puoi accedere alla scheda "Analisi del repository" nella pagina "Revisioni del codice" per attivare una nuova analisi su un repository completo. Due scansioni complete del repository sono incluse nel nuovo modello di prezzo del repository basato sulle dimensioni. Per ulteriori informazioni, consulta la pagina dei prezzi di CodeGuru.

Analisi completa del repository
 Fai clic per ingrandire

Grazie all'analisi completa delle richieste pull e del repository, l'acquisizione di CodeGuru Reviewer consente di 1) associare il repository, 2) avviare un'analisi completa del repository, 3) analizzare continuamente le richieste pull per individuare modifiche incrementali del codice e 4) eseguire una nuova scansione periodica dell'intero repository per garantire la gestibilità del codice.

Rilevamento della sicurezza
 Fai clic per ingrandire

Amazon CodeGuru Profiler

Amazon CodeGuru Profiler è sempre alla ricerca di nuovi modi per ottimizzare le prestazioni delle applicazioni, identificando le righe di codice più "costose" e consigliando le opportune correzioni al fine di ridurre l'utilizzo della CPU e dei costi di elaborazione, nonché di migliorare le prestazioni dell'applicazione. Ad esempio, CodeGuru Profiler è in grado di identificare i momenti in cui l'applicazione richiede una capacità di CPU eccessiva tramite una routine di registrazione anziché tramite l'esecuzione della logica di business principale.

Profiling sempre attivo per le applicazioni in produzione

CodeGuru Profiler è un servizio progettato per essere eseguito sempre in produzione con un sovraccarico minimo, per lasciarlo sempre attivo con un impatto minimo sulle prestazioni dell'applicazione. Ciò ti consente di effettuare il profiling e di risolvere i problemi della tua applicazione utilizzando i modelli di traffico dei clienti reali, nonché di individuare con facilità i problemi relativi alle prestazioni. Con i dati profiler e i suggerimenti basati su machine learning, puoi identificare e risolvere problemi relativi alle prestazioni per le applicazioni in produzione. CodeGuru Profiler fornisce anche un riepilogo dell'heap, in modo che tu possa identificare quali oggetti stanno utilizzando la memoria in un dato momento.

Informazioni sul comportamento del runtime delle applicazioni

CodeGuru Profiler analizza costantemente le caratteristiche di utilizzo della CPU, di utilizzo dell'heap e della latenza, per mostrarti i punti in cui l'applicazione impiega più tempo o il maggior numero di cicli. L'analisi della CPU e della latenza viene presentata in un grafico a fiamma interattivo che ti aiuta a capire facilmente quali percorsi di codice richiedono più risorse, a verificare che l'applicazione funzioni come previsto e a individuare gli aspetti che possono essere ottimizzati ulteriormente.

Anomalia nell'elaborazione delle immagini
 Fai clic per ingrandire

I grafici a fiamma visualizzano le prestazioni dell'applicazione aggregando campioni di tracce dello stack in un determinato periodo di tempo, per produrre un'immagine accurata del comportamento dell'applicazione durante quel periodo. È possibile utilizzare un grafico a fiamma per capire quali percorsi richiedono più risorse, per verificare che l'applicazione funzioni come previsto e per individuare gli aspetti che possono essere ottimizzati ulteriormente. Ad esempio, il metodo UploadGreyImage richiede 134.868 USD all'anno e utilizza il 10,22% del tempo reale. Se non ti aspettavi che richiedesse tanto tempo, avresti potuto effettuare un'analisi.

Riepilogo dell'heap

L'analisi dell'utilizzo dell'heap viene presentata in una visualizzazione di riepilogo, che mostra gli oggetti allocati sull'heap, vale a dire classi di dominio o oggetti di proprietà delle librerie o del JDK.

Scopri le anomalie e i problemi comuni nelle prestazioni della tua applicazione
 Fai clic per ingrandire

Il riepilogo dell'heap visualizza tutti gli oggetti allocati sull'heap in un determinato periodo di tempo, insieme alle dimensioni, al conteggio e alle serie temporali. Ad esempio, nel grafico delle serie temporali, puoi vedere che alle 16:20 ci sono due oggetti che iniziano a crescere in modo significativo (java.util.LinkedHashMap$Entry e java.land.UUID), il che indica una potenziale perdita di memoria. Se questa tendenza di crescita continua e non viene controllata, potrebbe portare a una situazione di perdita di memoria.

Suggerimenti intelligenti

CodeGuru Profiler identifica automaticamente i problemi relativi alle prestazioni nella tua applicazione e fornisce suggerimenti basati su machine learning su come risolverli. Questi suggerimenti ti aiutano a identificare e ottimizzare i metodi più dispendiosi o impegnativi in termini di risorse nel codice senza dover fare affidamento a competenze tecniche specialistiche. Tali ottimizzazioni ti aiutano a ridurre il costo dell'infrastruttura e la latenza, nonché a migliorare l'esperienza complessiva degli utenti finali.

Suggerimenti intelligenti
 Fai clic per ingrandire

Se Amazon CodeGuru Profiler riscontra la possibilità di ottimizzare le prestazioni della tua applicazione, ti spiegherà il motivo per cui ti viene suggerita una data modifica, la causa del problema e la soluzione, nonché i punti del codice in cui il problema influisce negativamente sull'applicazione. Questo suggerimento mostra che questa riga di codice costa 182.160 USD all'anno e ha un impatto del 2,97% sull'utilizzo della CPU. Se segui i passaggi di risoluzione suggeriti, sarai in grado di risparmiare fino a 182.160 USD.

Rilevamento di anomalie

Amazon CodeGuru Profiler analizza di continuo i profili dell'applicazione in tempo reale e rileva anomalie nel comportamento dell'applicazione e dei suoi metodi. Ogni anomalia viene registrata nel report di Suggerimenti della console CodeGuru Profiler e puoi visualizzare serie temporali su come si comporta la latenza del metodo nel tempo con le anomalie chiaramente evidenziate. Se configurata, sarà inoltre inviata al momento del rilevamento di una nuova anomalia una notifica Amazon SNS.

Rilevamento di anomalie
 Fai clic per ingrandire
Standard Product Icons (Features) Squid Ink
Ulteriori informazioni sui prezzi di Amazon CodeGuru

Visita la pagina dei prezzi di Amazon CodeGuru.

Ulteriori informazioni 
Sign up for a free account
Registrati per creare un account gratuito

Ottieni accesso istantaneo al piano gratuito di AWS. 

Registrati 
Standard Product Icons (Start Building) Squid Ink
Inizia a creare nella console

Inizia subito a utilizzare Amazon CodeGuru nella console di gestione AWS.

Accedi