Optimera för hållbarhet med Amazon CodeWhisperer | Amazon webbtjänster

Optimera för hållbarhet med Amazon CodeWhisperer | Amazon webbtjänster

Det här inlägget utforskar hur Amazon Code Whisperer kan hjälpa till med kodoptimering för hållbarhet genom ökad resurseffektivitet. Beräkningsmässigt resurseffektiv kodning är en teknik som syftar till att minska mängden energi som krävs för att bearbeta en kodrad och som ett resultat hjälpa företag att förbruka mindre energi totalt sett. I denna era av molnberäkningar utnyttjar utvecklare nu bibliotek med öppen källkod och avancerad processorkraft som är tillgänglig för dem för att bygga ut storskaliga mikrotjänster som måste vara operativt effektiva, prestanda och motståndskraftiga. Moderna applikationer består dock ofta av omfattande kod som kräver betydande datorresurser. Även om den direkta miljöpåverkan kanske inte är uppenbar, förstärker suboptimerad kod koldioxidavtrycket för moderna applikationer genom faktorer som ökad energiförbrukning, långvarig hårdvaruanvändning och föråldrade algoritmer. I det här inlägget upptäcker vi hur Amazon CodeWhisperer hjälper till att hantera dessa problem och minskar din kods miljöavtryck.

Amazon CodeWhisperer är en generativ AI-kodningskompanjon som påskyndar mjukvaruutvecklingen genom att ge förslag baserat på den befintliga koden och kommentarerna på naturligt språk, vilket minskar den övergripande utvecklingsansträngningen och frigör tid för brainstorming, lösa komplexa problem och skapa differentierad kod. Amazon CodeWhisperer kan hjälpa utvecklare att effektivisera sina arbetsflöden, förbättra kodkvaliteten, bygga starkare säkerhetsställningar, generera robusta testsviter och skriva beräkningsresursvänlig kod, som kan hjälpa dig att optimera för miljömässig hållbarhet. Den finns tillgänglig som en del av Toolkit för Visual Studio Code, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS-lim, och JetBrains IntelliJ IDEA. Amazon CodeWhisperer stöder för närvarande Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-skript, SQL och Scala.

Inverkan av ooptimerad kod på cloud computing och applikationers koldioxidavtryck

AWS infrastruktur är 3.6 gånger mer energieffektiv än medianen för undersökta amerikanska företagsdatacenter och upp till 5 gånger mer energieffektiva än det genomsnittliga europeiska företagsdatacentret. Därför kan AWS hjälpa till att minska arbetsbelastningens koldioxidavtryck med upp till 96 %. Du kan nu använda Amazon CodeWhisperer för att skriva kvalitetskod med minskad resursanvändning och energiförbrukning, och uppfylla skalbarhetsmål samtidigt som du drar nytta av AWS energieffektiv infrastruktur.

Ökad resursanvändning

Ooptimerad kod kan resultera i ineffektiv användning av molnresurser. Som ett resultat kan fler virtuella maskiner (VM) eller behållare behövas, vilket ökar resursallokeringen, energianvändningen och det relaterade koldioxidavtrycket från arbetsbördan. Du kan stöta på ökningar i följande:

  • CPU-utnyttjande – Ooptimerad kod innehåller ofta ineffektiva algoritmer eller kodningsmetoder som kräver alltför många CPU-cykler för att köras.
  • Minneskonsumtion – Ineffektiv minneshantering i ooptimerad kod kan resultera i onödig minnesallokering, deallokering eller dataduplicering.
  • Disk I/O-operationer – Ineffektiv kod kan utföra överdrivna input/output (I/O) operationer. Till exempel, om data läses från eller skrivs till disken oftare än nödvändigt, kan det öka diskens I/O-användning och latens.
  • Nätverksanvändning – På grund av ineffektiva dataöverföringstekniker eller dubbel kommunikation kan dåligt optimerad kod orsaka en överdriven mängd nätverkstrafik. Detta kan leda till högre latens och ökat utnyttjande av nätverkets bandbredd. Ökat nätverksanvändning kan resultera i högre utgifter och resursbehov i situationer där nätverksresurser beskattas baserat på användning, till exempel i moln.

Högre energiförbrukning

Infrastrukturstödjande applikationer med ineffektiv kod använder mer processorkraft. Överanvändning av datorresurser på grund av ineffektiv, uppblåst kod kan resultera i högre energiförbrukning och värmeproduktion, vilket i efterhand kräver mer energi för kylning. Tillsammans med servrarna förbrukar även kylsystemen, infrastrukturen för kraftdistribution och andra hjälpelement energi.

Skalbarhetsutmaningar

I applikationsutveckling kan skalbarhetsproblem orsakas av ooptimerad kod. Sådan kod kanske inte skalas effektivt när uppgiften växer, vilket kräver mer resurser och använder mer energi. Detta ökar energin som förbrukas av dessa kodfragment. Som tidigare nämnts har ineffektiv eller slösaktig kod en sammansättningseffekt i stor skala.

De sammansatta energibesparingarna från optimeringskod som kunder kör i vissa datacenter förvärras ännu mer när vi tar hänsyn till att molnleverantörer som AWS har dussintals datacenter runt om i världen.

Amazon CodeWhisperer använder maskininlärning (ML) och stora språkmodeller för att tillhandahålla kodrekommendationer i realtid baserat på originalkoden och kommentarer om naturliga språk, och ger kodrekommendationer som kan vara mer effektiva. Programmets infrastrukturanvändningseffektivitet kan ökas genom att optimera koden med hjälp av strategier inklusive algoritmiska framsteg, effektiv minneshantering och en minskning av meningslösa I/O-operationer.

Kodgenerering, komplettering och förslag

Låt oss undersöka flera situationer där Amazon CodeWhisperer kan vara användbar.

Genom att automatisera utvecklingen av repetitiv eller komplex kod minimerar kodgenereringsverktyg risken för mänskliga fel samtidigt som de fokuserar på plattformsspecifika optimeringar. Genom att använda etablerade mönster eller mallar, kan dessa program producera kod som mer konsekvent följer bästa hållbarhetspraxis. Utvecklare kan producera kod som överensstämmer med särskilda kodningsstandarder, vilket hjälper till att leverera mer konsekvent och pålitlig kod genom hela projektet. Den resulterande koden kan vara mer effektiv och eftersom den tar bort mänskliga kodningsvariationer, och kan vara mer läsbar, förbättrar utvecklingshastigheten. Den kan automatiskt implementera sätt att minska storleken och längden på applikationsprogrammet, som att ta bort överflödig kod, förbättra variabel lagring eller använda komprimeringsmetoder. Dessa optimeringar kan hjälpa till med optimering av minnesförbrukning och ökar den totala systemeffektiviteten genom att krympa paketstorleken.

Generativ AI har potential att göra programmering mer hållbar genom att optimera resursallokeringen. Att se holistiskt på en applikations koldioxidavtryck är viktigt. Verktyg som Amazon CodeGuru Profiler kan samla in prestandadata för att optimera latens mellan komponenter. Profileringstjänsten undersöker kodkörningar och identifierar potentiella förbättringar. Utvecklare kan sedan manuellt förfina den automatiskt genererade koden baserat på dessa resultat för att ytterligare förbättra energieffektiviteten. Kombinationen av generativ AI, profilering och mänsklig tillsyn skapar en återkopplingsslinga som kontinuerligt kan förbättra kodeffektiviteten och minska miljöpåverkan.

Följande skärmdump visar dig resultat som genererats från CodeGuru Profiler i latensläge, vilket inkluderar nätverk och disk I/O. I det här fallet tillbringar applikationen fortfarande större delen av sin tid i ImageProcessor.extractTasks (andra nedre raden), och nästan hela tiden inuti som är körbar, vilket betyder att den inte väntade på någonting. Du kan se dessa trådtillstånd genom att byta till latensläge från CPU-läge. Detta kan hjälpa dig att få en god uppfattning om vad som påverkar applikationens väggklocka. För mer information, se Minska din organisations koldioxidavtryck med Amazon CodeGuru Profiler.

bild

Generera testfall

Amazon Code Whisperer kan hjälpa till att föreslå testfall och verifiera kodens funktionalitet genom att överväga gränsvärden, kantfall och andra potentiella problem som kan behöva testas. Amazon CodeWhisperer kan också förenkla att skapa repetitiv kod för enhetstestning. Om du till exempel behöver skapa exempeldata med hjälp av INSERT-satser, kan Amazon CodeWhisperer generera de nödvändiga inläggen baserat på ett mönster. De övergripande resurskraven för mjukvarutestning kan också minskas genom att identifiera och optimera resurskrävande testfall eller ta bort redundanta. Förbättrade testsviter har potential att göra applikationen mer miljövänlig genom att öka energieffektiviteten, minska resursförbrukningen, minimera avfall och minska arbetsbelastningens koldioxidavtryck.

För en mer praktisk upplevelse med Amazon CodeWhisperer, se Optimera mjukvaruutveckling med Amazon CodeWhisperer. Inlägget visar kodrekommendationerna från Amazon CodeWhisperer i Amazon SageMaker Studio. Den visar också den föreslagna koden baserat på kommentarer för att ladda och analysera en datauppsättning.

Slutsats

I det här inlägget lärde vi oss hur Amazon CodeWhisperer kan hjälpa utvecklare att skriva optimerad, mer hållbar kod. Med hjälp av avancerade ML-modeller analyserar Amazon CodeWhisperer din kod och ger personliga rekommendationer för att förbättra effektiviteten, vilket kan minska kostnaderna och hjälpa till att minska koldioxidavtrycket.

Genom att föreslå mindre justeringar och alternativa tillvägagångssätt gör Amazon CodeWhisperer det möjligt för utvecklare att avsevärt minska resursanvändning och utsläpp utan att offra funktionalitet. Oavsett om du vill optimera en befintlig kodbas eller se till att nya projekt är resurseffektiva kan Amazon CodeWhisperer vara ett ovärderligt hjälpmedel. För att lära dig mer om Amazon CodeWhisperer och AWS Sustainability-resurser för kodoptimering, överväg följande nästa steg:


Om författarna

Optimera för hållbarhet med Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Isha Dua är en senior lösningsarkitekt baserad i San Francisco Bay Area. Hon hjälper AWS företagskunder att växa genom att förstå deras mål och utmaningar, och guidar dem om hur de kan utforma sina applikationer på ett molnbaserat sätt samtidigt som de säkerställer motståndskraft och skalbarhet. Hon brinner för maskininlärningsteknik och miljömässig hållbarhet.

Optimera för hållbarhet med Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Ajjay Govindaram är Senior Solutions Architect på AWS. Han arbetar med strategiska kunder som använder AI/ML för att lösa komplexa affärsproblem. Hans erfarenhet ligger i att tillhandahålla teknisk ledning samt designhjälp för blygsamma till storskaliga AI/ML-applikationer. Hans kunskap sträcker sig från applikationsarkitektur till big data, analys och maskininlärning. Han tycker om att lyssna på musik medan han vilar, uppleva utomhus och umgås med sina nära och kära.

Optimera för hållbarhet med Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Erick Irigoyen är en lösningsarkitekt på Amazon Web Services med fokus på kunder inom halvledar- och elektronikindustrin. Han arbetar nära kunderna för att förstå deras affärsutmaningar och identifiera hur AWS kan utnyttjas för att uppnå deras strategiska mål. Hans arbete har främst fokuserat på projekt relaterade till artificiell intelligens och maskininlärning (AI/ML). Innan han började på AWS var han seniorkonsult på Deloittes Advanced Analytics-praktik där han ledde arbetsflöden i flera uppdrag över hela USA med fokus på Analytics och AI/ML. Erick har en BS i Business från University of San Francisco och en MS i Analytics från North Carolina State University.

Tidsstämpel:

Mer från AWS maskininlärning