Ihre teuersten Codezeilen finden und die Codequalität verbessern
Amazon CodeGuru ist ein Entwickler-Tool, das auf Basis von Machine Learning intelligente Empfehlungen für die Verbesserung der Codequalität liefert und die teuersten Codezeilen in einer Anwendung findet. Integrieren Sie Amazon CodeGuru in Ihren bestehenden Softwareentwicklungs-Workflow, wo Sie integrierte Codeüberprüfungen erleben, um die teuren Codezeilen zu erkennen und zu optimieren und so die Kosten zu senken.
Amazon CodeGuru Profiler hilft Entwicklern dabei, die teuersten Codezeilen in einer Anwendung zu finden und bietet spezifische Visualisierungen und Empfehlungen, wie Sie den Code verbessern können, um Geld zu sparen. Weitere Informationen »
Amazon CodeGuru Reviewer verwendet Machine Learning, um kritische Probleme und schwer zu findende Fehler während der Anwendungsentwicklung zu identifizieren und so die Codequalität zu verbessern. Weitere Informationen »
Vorteile
Finden Sie heraus, wo Ihre Anwendung Sie Geld kostet
Je effizienter der Code und die Anwendung sind, desto weniger kostspielig ist ihre Ausführung. Entwickler können den Amazon CodeGuru Profiler verwenden, um potenzielle Einsparungen für jede in der Produktion befindliche Anwendung zu finden. Amazon CodeGuru Profiler bietet Visualisierungen und Empfehlungen, um Leistungsprobleme zu beheben und zeigt die geschätzten Kosten für das Ausführen des ineffizienten Codes. Er hilft Entwickler so, die Problembehebung zur Priorität zu machen. Optimieren Sie die Leistung von jeder Anwendung, die in AWS Lambda, Amazon EC2, Amazon ECS, AWS Fargate oder AWS Elastic Beanstalk und On-Premise läuft. Bei Anwendungen in EC2, Containers und On-Premise müssen Sie den Profileragenten Ihrem JVM hinzufügen. Für Lambda müssen Sie den Agenten in Ihrem Lambda-Code mit einer einzeiligen Änderung anfügen.
Entdecken Sie teure Code-Probleme, bevor Sie sich auf die Produktion auswirken.
CodeGuru basiert auf Machine Learning, bewwährten Methoden und hart erlernten Lektionen aus Millionen von Codeüberprüfungen und Tausenden von Anwendungen, die in Open-Source-Projekten und intern bei Amazon erstellt wurden. Für Code-Überprüfungen übermitteln Entwickler ihren Code zu GitHub, GitHub Enterprise, Bitbucket Cloud, AWS CodeCommit und fügen Amazon CodeGuru als einen der Reviewer hinzu. Es müssen keine anderen Änderungen im Entwicklungsprozess vorgenommen werden. Amazon CodeGuru Reviewer analysiert vorhandene Codebasen im Repository, identifiziert schwer zu findende Fehler und kritische Probleme mit hoher Genauigkeit, bietet intelligente Vorschläge zu deren Behebung und erstellt eine Basislinie für nachfolgende Codeüberprüfungen.
Noch heute Ihre teuersten Codezeilen finden
Amazon CodeGuru Profiler erkennt automatisch Anomalien in der Leistung kritischer Methoden im Anwendungs-Stack, die anfangen, mehr CPU zu verbrauchen oder eine erhöhte Latenzzeit aufweisen. Innerhalb von 10 Minuten benachrichtigt er den designierten Entwickler über die Anomalie. Diese frühzeitige Erkennung und Benachrichtigung verhindert die Eskalation des Problems in der Produktion und gibt dem Entwickler genügend Zeit, das Problem zu beheben, bevor es sich auf die Verfügbarkeit seines Dienstes und das Erlebnis seiner Kunden auswirkt.
Amazon CodeGuru Reviewer erkennt außerdem Abweichungen von bewährten Methoden für die Verwendung von AWS-APIs und SDKs, wobei häufig auftretende Probleme, die zu Produktionsproblemen führen können, z. B. die Erkennung fehlender Paginierung oder fehlerbehaftete Behandlung bei Batchvorgängen, gekennzeichnet werden. Er 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. Er erkennt, wenn Ressourcen fälschlicherweise geschlossen werden, was zu Latenzproblemen und Ausfällen führt. Außerdem wird das Fehlen der Eingabevalidierung identifiziert, bei der nicht bereinigte Eingaben zu Problemen wie Injection-Angriffen oder Denial-of-Service führen können.
Kundenerfolg
„Wenn wir Anomalien in der Produktion feststellen, konnten wir die Untersuchungszeit dank der kontinuierlichen Profilierungsfunktion von AWS CodeGuru von Tagen auf Stunden und manchmal sogar Minuten reduzieren. Unsere Entwickler konzentrieren sich nun mit mehr Energie auf die Bereitstellung differenzierter Fähigkeiten und weniger Zeit auf die Untersuchung von Problemen in unserer Produktionsumgebung.“
Zak Islam, Head of Engineering, Tech Teams, Atlassian
Erfahren Sie, wie Atlassian Services in der Produktion mit CodeGuru Profiler profiliert »
„Teil der Anwendungsentwicklung ist die Erstellung leistungsfähiger Systeme sowie das Feedback und die kontinuierliche Verbesserung bestehender Systeme. Dies beginnt mit einem starken architektonischen Fundament, endet aber oft in den Details des Anwendungscodes. Wenn sich unser Team bei EagleDream mit diesen Details beschäftigt, steht uns eine Vielzahl von Tools zur Verfügung, und es ist hilfreich, sowohl statische als auch dynamische Analysen durchzuführen. Wir haben festgestellt, dass die Laufzeitanalyse, die vom Amazon CodeGuru Profiler angeboten wird, eine der einfachsten und schnellsten ist und Erkenntnisse über den Anwendungscode generiert, die leicht umzusetzen sind. Mit diesem Tool konnten wir uns schnell auf Teile einer Anwendung konzentrieren, die Engpässe darstellen, die sonst schwer zu erkennen gewesen wären, und dann Änderungen entwickeln, die mit einer sehr schnellen Feedback-Schleife implementiert und getestet werden können. Auf diese Weise können wir unsere eigenen Workflows und die unserer Kunden kontinuierlich erfüllen und verbessern, wodurch sie mehr schaffen und gleichzeitig Kosten sparen.“
Dustin Potter, Principal Cloud Solutions Architect, EagleDream
Erfahren Sie, wie EagleDream seine Anwendungen mit CodeGuru Profiler optimiert »
„Bei DevFactory verwalten wir über 600 Millionen Codezeilen in über hundert Unternehmenssoftwareprodukten. Eine Schlüsselkomponente unserer zukunftsgerichteten Roadmap ist es, alle unsere Produkte in Cloud-native Produkte umzuwandeln, die die unglaubliche Bandbreite der bei AWS verfügbaren verwalteten Services nutzen. Der Wiederaufbau von Architekturen der alten Schule und deren Transformation für die Cloud bringt eine ganze Reihe von technischen Herausforderungen mit sich, die von der Anpassung an den Paradigmenwechsel, der mit diesen Architekturen verbunden ist, bis hin zur Anpassung an die neuesten Services reichen. Amazon CodeGuru ist ein unglaublich wertvolles Tool, das uns hilft, die Leistung unserer Produkte zu optimieren und gleichzeitig sicherzustellen, dass wir diese Dienste mit allen bewährten Methoden nutzen. Ohne Tools wie den Amazon CodeGuru Reviewer wären wir nicht in der Lage gewesen, ganze Produkte wie FogBugz so umzuschreiben, dass sie AWS Cloud-nativ sind. Wir verwenden jetzt den Amazon CodeGuru Profiler, um eine Reihe von Produkten zu optimieren, darunter die Container-basierte 'No Ops'-Plattform von EngineYard und die nächste Generation der Jive-Kollaborationsplattform.“
Rahul Subramaniam, CEO, DevFactory
Erfahren Sie, wie DevFactory bessere Anwendungen mit CodeGuru entwickelt »
Chris Butterfield, ein Softwareentwickler, der bei Amazon.in einen Planungsservice für Verkäufer durchführt:
„Nachdem ich Amazon 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 Amazon 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 Amazon 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 Amazon 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 Softwareentwickler, der an AWS Builder-Tools arbeitet:
„Amazon 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. Amazon 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. Amazon CodeGuru Reviewer brauchte ein paar Minuten, um sich die Semantik des Codes anzuschauen, und er stellte fest, dass die Ressource relativ schnell leckte. Amazon CodeGuru Reviewer empfahl mir, "try-with-resources" zum Schließen der Ressource zu verwenden, und ich setzte das sofort um. Echt hervorragend!“
Geetika Vasudeo, ein Softwareentwickler, 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. Amazon 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.“
Amazon CodeGuru Reviewer unterstützt:
- Überprüferunterstützte Sprache: Java
- Repositorys: GitHub, GitHub Enterprise, Bitbucket-Cloud und AWS CodeCommit
- Empfehlungen
Amazon CodeGuru Profiler unterstützt:
- Java und andere JVM-Sprachen
- Amazon EC2, Amazon ECS, Amazon EKS, AWS Fargate, AWS Beanstalk
- Anomalieerkennung
- AWS Lambda
- On-Premise
- Flammendiagramme
- Empfehlungen
Sie erhalten sofort Zugriff auf das kostenlose AWS-Kontingent.
Beginnen Sie mit dem Erstellen mit Amazon CodeGuru in der AWS-Managementkonsole.