Optimieren Sie für Nachhaltigkeit mit Amazon CodeWhisperer | Amazon Web Services

Optimieren Sie für Nachhaltigkeit mit Amazon CodeWhisperer | Amazon Web Services

In diesem Beitrag wird untersucht, wie Amazon Code Whisperer kann bei der Codeoptimierung für Nachhaltigkeit durch erhöhte Ressourceneffizienz helfen. Rechenressourceneffizientes Codieren ist eine Technik, die darauf abzielt, die für die Verarbeitung einer Codezeile erforderliche Energiemenge zu reduzieren und dadurch Unternehmen dabei zu helfen, insgesamt weniger Energie zu verbrauchen. Im Zeitalter des Cloud Computing nutzen Entwickler nun Open-Source-Bibliotheken und die ihnen zur Verfügung stehende fortschrittliche Rechenleistung, um groß angelegte Microservices zu entwickeln, die betrieblich effizient, leistungsstark und belastbar sein müssen. Moderne Anwendungen bestehen jedoch häufig aus umfangreicher Code, der erhebliche Rechenressourcen erfordert. Obwohl die direkten Auswirkungen auf die Umwelt möglicherweise nicht offensichtlich sind, vergrößert nicht optimierter Code den COXNUMX-Fußabdruck moderner Anwendungen durch Faktoren wie erhöhten Energieverbrauch, längere Hardwarenutzung und veraltete Algorithmen. In diesem Beitrag erfahren Sie, wie Amazon CodeWhisperer dabei hilft, diese Bedenken auszuräumen und den ökologischen Fußabdruck Ihres Codes zu reduzieren.

Amazon CodeWhisperer ist ein generativer KI-Codierungsbegleiter, der die Softwareentwicklung beschleunigt, indem er Vorschläge auf der Grundlage des vorhandenen Codes und natürlichsprachlicher Kommentare macht, wodurch der Gesamtentwicklungsaufwand reduziert und Zeit für Brainstorming, die Lösung komplexer Probleme und die Erstellung differenzierten Codes gewonnen wird. Amazon CodeWhisperer kann Entwicklern dabei helfen, ihre Arbeitsabläufe zu optimieren, die Codequalität zu verbessern, stärkere Sicherheitsvorkehrungen aufzubauen, robuste Testsuiten zu generieren und rechenressourcenschonenden Code zu schreiben, der Ihnen bei der Optimierung der Umweltverträglichkeit helfen kann. Es ist als Teil der erhältlich Toolkit für Visual Studio Code, AWS Cloud9, JupyterLab, Amazon SageMaker-Studio, AWS Lambda, AWS-Kleberund JetBrains IntelliJ IDEA. Amazon CodeWhisperer unterstützt derzeit Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-Scripting, SQL und Scala.

Auswirkungen von nicht optimiertem Code auf Cloud Computing und den COXNUMX-Fußabdruck von Anwendungen

Die Infrastruktur von AWS ist 3.6-mal energieeffizienter als der Durchschnitt der untersuchten US-amerikanischen Unternehmensrechenzentren und bis zu 5-mal energieeffizienter als das durchschnittliche europäische Unternehmensrechenzentrum. Daher kann AWS dazu beitragen, den CO96-Fußabdruck der Arbeitsbelastung um bis zu XNUMX % zu senken. Sie können jetzt Amazon CodeWhisperer verwenden, um Qualitätscode mit reduziertem Ressourcen- und Energieverbrauch zu schreiben, Skalierbarkeitsziele zu erreichen und gleichzeitig von der energieeffizienten AWS-Infrastruktur zu profitieren.

Erhöhter Ressourcenverbrauch

Nicht optimierter Code kann zu einer ineffektiven Nutzung von Cloud-Computing-Ressourcen führen. Infolgedessen sind möglicherweise mehr virtuelle Maschinen (VMs) oder Container erforderlich, was die Ressourcenzuweisung, den Energieverbrauch und den damit verbundenen COXNUMX-Fußabdruck der Arbeitslast erhöht. In folgenden Fällen kann es zu Erhöhungen kommen:

  • CPU-Auslastung – Nicht optimierter Code enthält häufig ineffiziente Algorithmen oder Codierungspraktiken, deren Ausführung übermäßige CPU-Zyklen erfordert.
  • Speicherverbrauch – Eine ineffiziente Speicherverwaltung in nicht optimiertem Code kann zu unnötiger Speicherzuweisung, -freigabe oder Datenduplizierung führen.
  • Festplatten-E/A-Vorgänge – Ineffizienter Code kann übermäßige Ein-/Ausgabeoperationen (I/O) ausführen. Wenn Daten beispielsweise häufiger als nötig von der Festplatte gelesen oder auf diese geschrieben werden, kann dies die E/A-Auslastung und Latenz der Festplatte erhöhen.
  • Netzwerknutzung – Aufgrund ineffizienter Datenübertragungstechniken oder doppelter Kommunikation kann schlecht optimierter Code zu übermäßigem Netzwerkverkehr führen. Dies kann zu einer höheren Latenz und einer erhöhten Auslastung der Netzwerkbandbreite führen. Eine erhöhte Netzwerkauslastung kann in Situationen, in denen Netzwerkressourcen auf der Grundlage der Nutzung besteuert werden, wie beispielsweise beim Cloud Computing, zu höheren Kosten und Ressourcenbedarf führen.

Höherer Energieverbrauch

Infrastrukturunterstützende Anwendungen mit ineffizientem Code verbrauchen mehr Rechenleistung. Eine Überbeanspruchung von Rechenressourcen aufgrund ineffizienten, aufgeblähten Codes kann zu einem höheren Energieverbrauch und einer höheren Wärmeproduktion führen, was wiederum einen höheren Energiebedarf für die Kühlung erfordert. Neben den Servern verbrauchen auch die Kühlsysteme, die Infrastruktur zur Stromverteilung und andere Hilfselemente Energie.

Herausforderungen bei der Skalierbarkeit

Bei der Anwendungsentwicklung können Skalierbarkeitsprobleme durch nicht optimierten Code verursacht werden. Ein solcher Code lässt sich möglicherweise nicht effektiv skalieren, wenn die Aufgabe wächst, was mehr Ressourcen erfordert und mehr Energie verbraucht. Dadurch erhöht sich der Energieverbrauch dieser Codefragmente. Wie bereits erwähnt, wirkt sich ineffizienter oder verschwenderischer Code im großen Maßstab noch verstärkend aus.

Die zusätzlichen Energieeinsparungen durch die Optimierung von Code, den Kunden in bestimmten Rechenzentren ausführen, werden noch größer, wenn wir berücksichtigen, dass Cloud-Anbieter wie AWS über Dutzende von Rechenzentren auf der ganzen Welt verfügen.

Amazon CodeWhisperer nutzt maschinelles Lernen (ML) und große Sprachmodelle, um Codeempfehlungen in Echtzeit basierend auf dem Originalcode und Kommentaren in natürlicher Sprache bereitzustellen und Codeempfehlungen bereitzustellen, die effizienter sein könnten. Die Effizienz der Infrastrukturnutzung des Programms kann durch die Optimierung des Codes mithilfe von Strategien wie algorithmischen Weiterentwicklungen, effektiver Speicherverwaltung und einer Reduzierung sinnloser E/A-Vorgänge gesteigert werden.

Codegenerierung, Vervollständigung und Vorschläge

Sehen wir uns mehrere Situationen an, in denen Amazon CodeWhisperer nützlich sein kann.

Durch die Automatisierung der Entwicklung sich wiederholender oder komplexer Codes minimieren Codegenerierungstools die Möglichkeit menschlicher Fehler und konzentrieren sich gleichzeitig auf plattformspezifische Optimierungen. Durch die Verwendung etablierter Muster oder Vorlagen können diese Programme Code erstellen, der sich konsequenter an bewährte Nachhaltigkeitspraktiken hält. Entwickler können Code erstellen, der bestimmten Codierungsstandards entspricht, und so dazu beitragen, während des gesamten Projekts konsistenteren und zuverlässigeren Code bereitzustellen. Der resultierende Code ist möglicherweise effizienter und da er menschliche Codierungsvariationen entfernt, kann er besser lesbar sein, was die Entwicklungsgeschwindigkeit verbessert. Es kann automatisch Möglichkeiten zur Reduzierung der Größe und Länge des Anwendungsprogramms implementieren, z. B. das Löschen überflüssigen Codes, die Verbesserung des Variablenspeichers oder die Verwendung von Komprimierungsmethoden. Diese Optimierungen können zur Optimierung des Speicherverbrauchs beitragen und die Gesamtsystemeffizienz steigern, indem sie die Paketgröße verkleinern.

Generative KI hat das Potenzial, die Programmierung durch die Optimierung der Ressourcenallokation nachhaltiger zu gestalten. Es ist wichtig, den COXNUMX-Fußabdruck einer Anwendung ganzheitlich zu betrachten. Werkzeuge wie Amazon CodeGuru-Profiler kann Leistungsdaten sammeln, um die Latenz zwischen Komponenten zu optimieren. Der Profiling-Dienst untersucht Codeläufe und identifiziert potenzielle Verbesserungen. Anschließend können Entwickler den automatisch generierten Code basierend auf diesen Erkenntnissen manuell verfeinern, um die Energieeffizienz weiter zu verbessern. Durch die Kombination aus generativer KI, Profilerstellung und menschlicher Aufsicht entsteht eine Rückkopplungsschleife, die die Codeeffizienz kontinuierlich verbessern und die Umweltbelastung reduzieren kann.

Der folgende Screenshot zeigt die vom CodeGuru Profiler generierten Ergebnisse im Latenzmodus, einschließlich Netzwerk- und Festplatten-E/A. In diesem Fall verbringt die Anwendung immer noch die meiste Zeit in ImageProcessor.extractTasks (zweite untere Reihe), und fast die gesamte Zeit darin ist lauffähig, was bedeutet, dass es auf nichts gewartet hat. Sie können diese Thread-Status anzeigen, indem Sie vom CPU-Modus in den Latenzmodus wechseln. Dies kann Ihnen helfen, eine gute Vorstellung davon zu bekommen, welche Auswirkungen die Uhrzeit der Anwendung hat. Weitere Informationen finden Sie unter Reduzieren Sie den COXNUMX-Fußabdruck Ihres Unternehmens mit Amazon CodeGuru Profiler.

Image

Testfälle generieren

Amazon Code Whisperer kann dabei helfen, Testfälle vorzuschlagen und die Funktionalität des Codes zu überprüfen, indem Grenzwerte, Randfälle und andere potenzielle Probleme berücksichtigt werden, die möglicherweise getestet werden müssen. Außerdem kann Amazon CodeWhisperer die Erstellung sich wiederholenden Codes für Unit-Tests vereinfachen. Wenn Sie beispielsweise Beispieldaten mithilfe von INSERT-Anweisungen erstellen müssen, kann Amazon CodeWhisperer die erforderlichen Einfügungen basierend auf einem Muster generieren. Der Gesamtressourcenbedarf für Softwaretests kann auch durch die Identifizierung und Optimierung ressourcenintensiver Testfälle oder die Entfernung redundanter Testfälle gesenkt werden. Verbesserte Testsuiten haben das Potenzial, die Anwendung umweltfreundlicher zu machen, indem sie die Energieeffizienz steigern, den Ressourcenverbrauch senken, Abfall minimieren und den COXNUMX-Fußabdruck der Arbeitsbelastung verringern.

Weitere praktische Erfahrungen mit Amazon CodeWhisperer finden Sie unter Optimieren Sie die Softwareentwicklung mit Amazon CodeWhisperer. Der Beitrag stellt die Code-Empfehlungen von Amazon CodeWhisperer vor Amazon SageMaker-Studio. Außerdem wird der vorgeschlagene Code basierend auf Kommentaren zum Laden und Analysieren eines Datensatzes demonstriert.

Zusammenfassung

In diesem Beitrag haben wir erfahren, wie Amazon CodeWhisperer Entwicklern dabei helfen kann, optimierten, nachhaltigeren Code zu schreiben. Mithilfe fortschrittlicher ML-Modelle analysiert Amazon CodeWhisperer Ihren Code und bietet personalisierte Empfehlungen zur Verbesserung der Effizienz, wodurch Kosten gesenkt und der COXNUMX-Fußabdruck verringert werden können.

Indem er kleinere Anpassungen und alternative Ansätze vorschlägt, ermöglicht Amazon CodeWhisperer Entwicklern, den Ressourcenverbrauch und die Emissionen erheblich zu reduzieren, ohne die Funktionalität zu beeinträchtigen. Ganz gleich, ob Sie eine bestehende Codebasis optimieren oder sicherstellen möchten, dass neue Projekte ressourceneffizient sind, Amazon CodeWhisperer kann eine unschätzbare Hilfe sein. Um mehr über Amazon CodeWhisperer und AWS Sustainability-Ressourcen zur Code-Optimierung zu erfahren, ziehen Sie die folgenden nächsten Schritte in Betracht:


Über die Autoren

Optimieren Sie für Nachhaltigkeit mit Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Isha Dua ist ein Senior Solutions Architect mit Sitz in der San Francisco Bay Area. Sie hilft AWS-Unternehmenskunden beim Wachstum, indem sie ihre Ziele und Herausforderungen versteht, und leitet sie an, wie sie ihre Anwendungen auf Cloud-native Weise gestalten und gleichzeitig Ausfallsicherheit und Skalierbarkeit gewährleisten können. Sie interessiert sich leidenschaftlich für maschinelle Lerntechnologien und ökologische Nachhaltigkeit.

Optimieren Sie für Nachhaltigkeit mit Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Ajjay Govindaram ist Senior Solutions Architect bei AWS. Er arbeitet mit strategischen Kunden zusammen, die KI/ML einsetzen, um komplexe Geschäftsprobleme zu lösen. Seine Erfahrung liegt in der Bereitstellung von technischer Anleitung sowie Designunterstützung für bescheidene bis große KI/ML-Anwendungsbereitstellungen. Sein Wissen reicht von Anwendungsarchitektur bis hin zu Big Data, Analytik und maschinellem Lernen. Er genießt es, Musik zu hören, während er sich ausruht, die Natur zu erleben und Zeit mit seinen Lieben zu verbringen.

Optimieren Sie für Nachhaltigkeit mit Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Erick Irigoyen ist Lösungsarchitekt bei Amazon Web Services und konzentriert sich auf Kunden in der Halbleiter- und Elektronikbranche. Er arbeitet eng mit Kunden zusammen, um ihre geschäftlichen Herausforderungen zu verstehen und herauszufinden, wie AWS zur Erreichung ihrer strategischen Ziele genutzt werden kann. Der Schwerpunkt seiner Arbeit liegt vor allem auf Projekten im Zusammenhang mit Künstlicher Intelligenz und Maschinellem Lernen (KI/ML). Bevor er zu AWS kam, war er Senior Consultant im Advanced Analytics-Bereich von Deloitte, wo er Arbeitsabläufe in mehreren Projekten in den Vereinigten Staaten mit Schwerpunkt auf Analytics und AI/ML leitete. Erick hat einen BS in Betriebswirtschaft von der University of San Francisco und einen MS in Analytics von der North Carolina State University.

Zeitstempel:

Mehr von AWS Maschinelles Lernen