Amazon CodeGuru (Vorschau)
Automatisieren Sie Codeüberprüfungen
Identifizieren Sie Ihre teuersten Codezeilen
Ausgebildet auf jahrzehntelangem Wissen und Erfahrung
Die Machine Learning-Modelle von CodeGuru werden auf der Basis von Amazon-Code geschult, der Hunderttausende von internen Projekten sowie über 10.000 Open-Source-Projekte in GitHub umfasst. Zehntausende Amazon-Entwickler haben auf der Grundlage jahrzehntelanger Erfahrung in der Überprüfung von Code und der Erstellung von Anwendungsprofilen zu CodeGurus Schulungen beigetragen. Beispielsweise wird CodeGuru Reviewer anhand von Rule Mining- und überwachten Machine Learning-Modellen geschult, die eine Kombination aus logistischer Regression und neuronalen Netzwerken verwenden. Während des Trainings, um Abweichungen von Best Practices zu erkennen, werden Amazon-Codebasen für Pull-Anforderungen durchsucht, die AWS-API-Aufrufe enthalten. Es untersucht Codeänderungen und vergleicht sie mit Dokumentationsdaten, die es auch parallel abbaut. Dadurch werden neue Modelle für bewährte Methoden erstellt, die von Reviewer verwendet werden, wenn der Code überprüft wird, um Empfehlungen bereitzustellen. CodeGuru Profiler wird auch von Amazon-Leistungstechnikern geschult und verwendet, um Zehntausende von Diensten zu profilieren, die intern bei Amazon verwendet werden. Sie können entscheiden, ob Sie die Empfehlungen von CodeGuru akzeptieren möchten. Je mehr Feedback Sie geben, desto besser werden die Empfehlungen.
Finden Sie Ihre teuersten Codezeilen
CodeGuru Profiler ist stets auf der Suche nach Optimierungen der Anwendungsleistung, der Identifizierung der "teuersten" Codezeilen und der Empfehlung von Möglichkeiten zur Behebung, um die CPU-Auslastung zu verringern, die Rechenkosten zu senken und die Anwendungsleistung zu verbessern. CodeGuru Profiler bietet spezifische Empfehlungen, mit denen Sie sofort Maßnahmen ergreifen können, um Probleme wie die übermäßige Neuerstellung teurer Objekte, die kostspielige Deserialisierung, die Verwendung ineffizienter Bibliotheken und die übermäßige Protokollierung zu beheben. CodeGuru Profiler wird kontinuierlich in der Produktion ausgeführt und benötigt nur minimale CPU-Kapazität, sodass die Anwendungsleistung nicht wesentlich beeinträchtigt wird. Sie können mit der Profilerstellung Ihrer Anwendung beginnen, indem Sie einen kleinen Agenten mit dem von CodeGuru bereitgestellten Code installieren und in der CodeGuru-Konsole konfigurieren.
Wenn Amazon CodeGuru Profiler Möglichkeiten zur Optimierung der Anwendungsleistung erkennt, wird erläutert, warum eine Änderung empfohlen wird, was das Problem verursacht, wie es behoben werden kann und wo sich dieses Problem im Code auf Ihre Anwendung auswirkt.
Amazon CodeGuru Reviewer überprüft Ihre Pull-Anforderungen und gibt Ihnen Empfehlungen zu Ihrem Quellcode in Github oder AWS CodeCommit sowie eine Beschreibung, was das Problem verursacht und wie Sie es beheben können.
Gehen Sie noch heute das Code-Problem an – warten Sie nicht, bis es zu spät ist
CodeGuru Reviewer sucht nach Dingen, die Sie nachts wach halten, und empfiehlt, wie Sie Abhilfe schaffen können. Es erkennt Abweichungen von Best Practices für die Verwendung von AWS-APIs und SDKs und weist auf häufige Probleme hin, die zu Produktionsproblemen führen können, z. B. das Erkennen einer fehlenden Paginierung oder die Fehlerbehandlung bei Stapelvorgängen. Es erkennt Parallelitätsprobleme wie Atomicity-Verstöße und die Verwendung von Klassen, die nicht threadsicher sind und selbst für erfahrene Programmierer schwer zu finden sind. Es erkennt, wenn Ressourcen fälschlicherweise geschlossen werden, was zu Latenzproblemen und Ausfällen führt. Außerdem wird die korrekte Eingabeüberprüfung identifiziert, bei der nicht bereinigte Eingaben zu Problemen wie Injection-Angriffen oder Denial-of-Service führen können. Sie können vorhandene Code-Repositorys in GitHub oder AWS CodeCommit mit CodeGuru verknüpfen, um mit der Überprüfung des Codes zu beginnen.
Preiswert genug, um für jede Codeüberprüfung und -anwendung verwendet zu werden
CodeGuru ist kostengünstig genug, um für jede von Ihnen ausgeführte Codeüberprüfung und -anwendung verwendet zu werden. Es bietet eine einfache monatliche Preisberechnung, die auf der Anzahl der überprüften Codezeilen und den Stichprobenstunden pro Anwendungsprofil basiert. Wenn Sie beispielsweise eine typische Pull-Anfrage mit 500 Codezeilen haben, kostet die Ausführung von CodeGuru Reviewer nur 3,75 USD. Probieren Sie es in den ersten 90 Tagen kostenlos aus. Danach kostet CodeGuru 0,005 USD pro Abtaststunde pro Anwendungsprofil und 0,75 USD pro 100 Codezeilen pro Monat. Preise ansehen»
Dutzende von Millionen USD
Was Entwickler über Amazon CodeGuru sagen
Chris Butterfield, ein Software-Entwicklungsingenieur, der bei Amazon.in einen Planungsservice für Verkäufer durchführt:
“Nachdem ich CodeGuru Profiler ausgeführt und seine Empfehlungen gelesen hatte, wurde mir klar, dass wir unseren Service aktualisieren mussten, um einen Fehler im Zusammenhang mit der CPU-Sperrung zu beheben. Das empfohlene Update funktionierte einwandfrei und entfernte die Thread-Konfliktwarnung, die 55,97 % der CPU-Zeit beanspruchte. Nach dem Fix habe ich den Auslastungstest abgeschlossen und festgestellt, dass ein einzelner Host nun 700 TPS liefern kann, was etwa dem 7,5-fachen des Datenverkehrs entspricht, den ein einzelner Host zuvor bewältigen konnte. Wir konnten unsere Anzahl an Instanzen nach Lasttests um ca. 75% reduzieren, während wir den gleichen Datenverkehr bewältigten."
Rajesh Konatham, ein leitender Softwareentwickler, der am Katalogverwaltungsservice für Amazon.com arbeitet
“Wir hatten gerade einige Software-bezogene Konfigurationen deaktiviert, um die Startzeit des Servers zu verkürzen und das Durcheinander der Profile zu verringern. Wir verwendeten CodeGuru Profiler, um die Auswirkungen dieser Änderung zu verstehen, und stellten fest, dass unser Workflow-System bei jeder Ausführung von Verzweigungen Dokumente klont, auch wenn dies nicht erforderlich war. Aus diesem Grund haben wir unnötigerweise 15 % der Werte für das Klonen der CPU-Kapazität ausgegeben. Nachdem wir die Empfehlung von CodeGuru Profiler befolgt hatten, diese geklonten Werte zu entfernen, konnten wir eine erhebliche Reduzierung der CPU-Auslastung feststellen - eine Reduzierung der synchronen Flotte um 40 % und der asynchronen Flotte um 67 %. Weit mehr als die erwartete Reduzierung der CPU-Auslastung um 15 %! Die zusätzliche Reduzierung war auf die verringerte Garbage Collection-Aktivität zurückzuführen, da die Klone keinen Heap-Speicher mehr beanspruchten.”
Neeraj Kumar, ein leitender Softwareentwickler, der mit Amazon CloudWatch arbeitet:
“Wir haben CodeGuru Profiler ausgeführt und festgestellt, dass der größte Teil unserer CPU-Kapazität zum Signieren der Amazon S3-Anforderung mit SHA-2 verwendet wurde. Wir haben die von JDK bereitgestellte Implementierung für SHA-2 verwendet, aber CodeGuru Profiler hat empfohlen, stattdessen Amazon Corretto Crypto Provider zu verwenden. Wir folgten der Empfehlung, die es uns ermöglichte, einige dieser Krypto-Algorithmen schneller zu implementieren. Da der Corretto Crypto Provider dem Verhalten von JDK entspricht, war das Onboarding einfach. Nach der Bereitstellung konnten wir in mehreren AWS-Regionen eine CPU-Reduzierung von ca. 30 % feststellen."
Mike Thompson, ein leitender Softwareentwicklungsingenieur, der an AWS Builder-Tools arbeitet:
“CodeGuru Reviewer hat es uns ermöglicht, einen langjährigen Rennzustand zu erkennen, der in einem wichtigen Teil des Codes lauert. Ein menschlicher Prüfer hätte es übersehen, da es sich außerhalb der Bereiche des Codes befand, die ich geändert hatte. CodeGuru Reviewer lieferte genügend Kontext zum Fehler, eine klare Erklärung, warum er schlecht war, und ein Beispiel, wie er behoben werden kann. Das Vornehmen der erforderlichen Änderung war sehr einfach und dauerte nur wenige Minuten. Es war großartig, dort etwas zu haben, um unsere Codequalität zu verbessern, ohne dass Setup oder Probleme auftreten.“
Danish Bashar, ein Softwareentwicklungsingenieur, der an AWS DynamoDB arbeitet:
"Ich habe eine Datei von Amazon S3 heruntergeladen und wusste nicht, dass es sich um einen Stream handelt, der ein Ressourcenleck verursacht hat. Unit-Tests hätten dieses Problem nicht erkannt, da es gut lief. Da ich den Objekttyp nicht explizit geschrieben hatte, habe ich ihn nicht bemerkt, und ich bin mir ziemlich sicher, dass es auch keinem Code aufgefallen wäre, der mich überprüft hat. CodeGuru Reviewer brauchte ein paar Minuten, um sich die Semantik des Codes anzuschauen, und es stellte fest, dass die Ressource relativ schnell leckte. CodeGuru Reviewer empfahl mir, die Ressource mit "try-with-resources" zu schließen und implementierte sie sofort. +1."
Geetika Vasudeo, ein Softwareentwicklungsingenieur, der an AWS DynamoDB arbeitet:
“Wir haben eine Amazon DynamoDB-Tabelle auf eine Weise verwendet, die wir normalerweise nicht verwenden. Dies haben wir in der Codeüberprüfung verpasst. CodeGuru Reviewer hat festgestellt, dass die Operation anstelle aller Ergebnisse paginierte Ergebnisse zurückgibt. Wir haben gescannt und nur Ergebnisse auf der ersten Seite abgerufen, was jetzt kein Problem war. Da die Tabelle jedoch mit der Zeit größer wurde, wurde nur die erste Seite angezeigt, und der Rest der Ergebnisse wurde nicht angezeigt. Wird dies nicht richtig gehandhabt, könnte dies zu einem schwerwiegenden Fehler in unserem Code werden. Toller Fang und tolle Empfehlung.“
Sie erhalten sofort Zugriff auf das kostenlose AWS-Kontingent.
Beginnen Sie mit dem Erstellen mit Amazon CodeGuru in der AWS-Managementkonsole.