Optimer til bæredygtighed med Amazon CodeWhisperer | Amazon Web Services

Optimer til bæredygtighed med Amazon CodeWhisperer | Amazon Web Services

Dette indlæg udforsker hvordan Amazon Code Whisperer kan hjælpe med kodeoptimering for bæredygtighed gennem øget ressourceeffektivitet. Beregningsmæssigt ressourceeffektiv kodning er en teknik, der har til formål at reducere mængden af ​​energi, der kræves for at behandle en kodelinje, og som følge heraf hjælpe virksomheder med at forbruge mindre energi generelt. I denne æra med cloud computing udnytter udviklere nu open source-biblioteker og avanceret processorkraft, der er tilgængelig for dem, til at bygge mikrotjenester i stor skala, der skal være operationelt effektive, ydeevne og modstandsdygtige. Moderne applikationer består dog ofte af omfattende kode, der kræver betydelige computerressourcer. Selvom den direkte miljøpåvirkning måske ikke er indlysende, forstærker suboptimeret kode moderne applikationers COXNUMX-fodaftryk gennem faktorer som øget energiforbrug, længerevarende hardwarebrug og forældede algoritmer. I dette indlæg opdager vi, hvordan Amazon CodeWhisperer hjælper med at løse disse bekymringer og reducerer din kodes miljømæssige fodaftryk.

Amazon CodeWhisperer er en generativ AI-kodningsledsager, der fremskynder softwareudviklingen ved at komme med forslag baseret på den eksisterende kode og naturlige sprogkommentarer, hvilket reducerer den samlede udviklingsindsats og frigør tid til brainstorming, løsning af komplekse problemer og oprettelse af differentieret kode. Amazon CodeWhisperer kan hjælpe udviklere med at strømline deres arbejdsgange, forbedre kodekvaliteten, opbygge stærkere sikkerhedsstillinger, generere robuste testsuiter og skrive beregningsressourcevenlig kode, som kan hjælpe dig med at optimere til miljømæssig bæredygtighed. Den er tilgængelig som en del af Værktøjssæt til Visual Studio Code, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS Lim, og JetBrains IntelliJ IDEA. Amazon CodeWhisperer understøtter i øjeblikket Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-scripting, SQL og Scala.

Virkningen af ​​uoptimeret kode på cloud computing og applikations COXNUMX-fodaftryk

AWS's infrastruktur er 3.6 gange mere energieffektiv end medianen af ​​adspurgte amerikanske virksomhedsdatacentre og op til 5 gange mere energieffektiv end det gennemsnitlige europæiske virksomhedsdatacenter. Derfor kan AWS hjælpe med at sænke arbejdsbelastningens CO96-fodaftryk med op til XNUMX %. Du kan nu bruge Amazon CodeWhisperer til at skrive kvalitetskode med reduceret ressourceforbrug og energiforbrug og opfylde skalerbarhedsmål, mens du drager fordel af AWS energieffektiv infrastruktur.

Øget ressourceforbrug

Uoptimeret kode kan resultere i ineffektiv brug af cloud computing-ressourcer. Som følge heraf kan der være behov for flere virtuelle maskiner (VM'er) eller containere, hvilket øger ressourceallokeringen, energiforbruget og det relaterede COXNUMX-fodaftryk af arbejdsbyrden. Du kan støde på stigninger i følgende:

  • CPU udnyttelse – Uoptimeret kode indeholder ofte ineffektive algoritmer eller kodningspraksis, der kræver for mange CPU-cyklusser for at køre.
  • Hukommelsesforbrug – Ineffektiv hukommelsesstyring i uoptimeret kode kan resultere i unødvendig hukommelsesallokering, deallokering eller dataduplikering.
  • Disk I/O operationer – Ineffektiv kode kan udføre overdreven input/output (I/O) operationer. For eksempel, hvis data læses fra eller skrives til disk oftere end nødvendigt, kan det øge disk I/O-udnyttelse og latens.
  • Netværksforbrug – På grund af ineffektive datatransmissionsteknikker eller dobbelt kommunikation kan dårligt optimeret kode forårsage en for stor mængde netværkstrafik. Dette kan føre til højere latenstid og øget netværksbåndbreddeudnyttelse. Øget netværksudnyttelse kan resultere i højere udgifter og ressourcebehov i situationer, hvor netværksressourcer beskattes baseret på forbrug, såsom i cloud computing.

Højere energiforbrug

Infrastruktur-understøttende applikationer med ineffektiv kode bruger mere processorkraft. Overforbrug af computerressourcer på grund af ineffektiv, oppustet kode kan resultere i højere energiforbrug og varmeproduktion, som efterfølgende kræver mere energi til afkøling. Sammen med serverne bruger kølesystemerne, infrastrukturen til strømdistribution og andre hjælpeelementer også energi.

Skalerbarhedsudfordringer

I applikationsudvikling kan problemer med skalerbarhed være forårsaget af uoptimeret kode. En sådan kode skaleres muligvis ikke effektivt, efterhånden som opgaven vokser, hvilket kræver flere ressourcer og bruger mere energi. Dette øger den energi, der forbruges af disse kodefragmenter. Som tidligere nævnt har ineffektiv eller ødsel kode en sammensætningseffekt i skala.

De forstærkede energibesparelser ved at optimere kode, som kunderne kører i visse datacentre, forværres endnu mere, når vi tager i betragtning, at cloud-udbydere som AWS har snesevis af datacentre rundt om i verden.

Amazon CodeWhisperer bruger maskinlæring (ML) og store sprogmodeller til at levere kodeanbefalinger i realtid baseret på den originale kode og kommentarer til det naturlige sprog og giver kodeanbefalinger, der kunne være mere effektive. Programmets infrastrukturbrugseffektivitet kan øges ved at optimere koden ved hjælp af strategier, herunder algoritmiske fremskridt, effektiv hukommelsesstyring og en reduktion af meningsløse I/O-operationer.

Kodegenerering, færdiggørelse og forslag

Lad os undersøge flere situationer, hvor Amazon CodeWhisperer kan være nyttig.

Ved at automatisere udviklingen af ​​gentagen eller kompleks kode minimerer kodegenereringsværktøjer muligheden for menneskelige fejl, mens der fokuseres på platformsspecifikke optimeringer. Ved at bruge etablerede mønstre eller skabeloner kan disse programmer producere kode, der mere konsekvent overholder bedste praksis for bæredygtighed. Udviklere kan producere kode, der overholder bestemte kodningsstandarder, hvilket hjælper med at levere mere ensartet og pålidelig kode gennem hele projektet. Den resulterende kode kan være mere effektiv, og fordi den fjerner menneskelige kodningsvariationer og kan være mere læselig, hvilket forbedrer udviklingshastigheden. Det kan automatisk implementere måder at reducere applikationsprogrammets størrelse og længde på, såsom sletning af overflødig kode, forbedring af variabel lagring eller brug af komprimeringsmetoder. Disse optimeringer kan hjælpe med optimering af hukommelsesforbrug og øger den samlede systemeffektivitet ved at formindske pakkestørrelsen.

Generativ AI har potentiale til at gøre programmering mere bæredygtig ved at optimere ressourceallokeringen. Det er vigtigt at se holistisk på en applikations COXNUMX-fodaftryk. Værktøjer som Amazon CodeGuru Profiler kan indsamle ydeevnedata for at optimere latens mellem komponenter. Profileringstjenesten undersøger kodekørsler og identificerer potentielle forbedringer. Udviklere kan derefter manuelt justere den automatisk genererede kode baseret på disse resultater for yderligere at forbedre energieffektiviteten. Kombinationen af ​​generativ AI, profilering og menneskelig overvågning skaber en feedback-loop, der løbende kan forbedre kodeeffektiviteten og reducere miljøpåvirkningen.

Følgende skærmbillede viser dig resultater genereret fra CodeGuru Profiler i latenstilstand, som inkluderer netværk og disk I/O. I dette tilfælde bruger applikationen stadig det meste af sin tid i ImageProcessor.extractTasks (anden nederste række), og næsten hele tiden inde, der kan køres, hvilket betyder, at den ikke ventede på noget. Du kan se disse trådtilstande ved at skifte til latenstilstand fra CPU-tilstand. Dette kan hjælpe dig med at få en god idé om, hvad der påvirker applikationens vægurs tid. For mere information, se Reducer din organisations kulstofaftryk med Amazon CodeGuru Profiler.

billede

Generering af testcases

Amazon Code Whisperer kan hjælpe med at foreslå testcases og verificere kodens funktionalitet ved at overveje grænseværdier, kantsager og andre potentielle problemer, der muligvis skal testes. Amazon CodeWhisperer kan også forenkle oprettelse af gentagen kode til enhedstestning. For eksempel, hvis du har brug for at oprette eksempeldata ved hjælp af INSERT-sætninger, kan Amazon CodeWhisperer generere de nødvendige inserts baseret på et mønster. De overordnede ressourcekrav til softwaretest kan også reduceres ved at identificere og optimere ressourcekrævende testsager eller fjerne overflødige. Forbedrede testsuiter har potentialet til at gøre applikationen mere miljøvenlig ved at øge energieffektiviteten, reducere ressourceforbruget, minimere spild og reducere arbejdsbyrdens COXNUMX-fodaftryk.

For en mere praktisk oplevelse med Amazon CodeWhisperer, se Optimer softwareudvikling med Amazon CodeWhisperer. Indlægget viser kodeanbefalingerne fra Amazon CodeWhisperer i Amazon SageMaker Studio. Den demonstrerer også den foreslåede kode baseret på kommentarer til indlæsning og analyse af et datasæt.

Konklusion

I dette indlæg lærte vi, hvordan Amazon CodeWhisperer kan hjælpe udviklere med at skrive optimeret, mere bæredygtig kode. Ved at bruge avancerede ML-modeller analyserer Amazon CodeWhisperer din kode og giver personlige anbefalinger til forbedring af effektiviteten, hvilket kan reducere omkostningerne og hjælpe med at reducere COXNUMX-fodaftrykket.

Ved at foreslå mindre justeringer og alternative tilgange gør Amazon CodeWhisperer det muligt for udviklere at reducere ressourceforbrug og emissioner markant uden at ofre funktionalitet. Uanset om du ønsker at optimere en eksisterende kodebase eller sikre, at nye projekter er ressourceeffektive, kan Amazon CodeWhisperer være en uvurderlig hjælp. For at lære mere om Amazon CodeWhisperer og AWS Sustainability ressourcer til kodeoptimering skal du overveje følgende næste trin:


Om forfatterne

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Isha Dua er en Senior Solutions Architect baseret i San Francisco Bay Area. Hun hjælper AWS-virksomhedskunder med at vokse ved at forstå deres mål og udfordringer og guider dem til, hvordan de kan opbygge deres applikationer på en cloud-native måde, samtidig med at de sikrer robusthed og skalerbarhed. Hun brænder for maskinlæringsteknologier og miljømæssig bæredygtighed.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Ajjay Govindaram er Senior Solutions Architect hos AWS. Han arbejder med strategiske kunder, der bruger AI/ML til at løse komplekse forretningsproblemer. Hans erfaring ligger i at levere teknisk vejledning samt designassistance til beskedne til store AI/ML-applikationsimplementeringer. Hans viden spænder fra applikationsarkitektur til big data, analytics og machine learning. Han nyder at lytte til musik, mens han hviler sig, opleve udendørslivet og tilbringe tid med sine kære.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Erick Irigoyen er en løsningsarkitekt hos Amazon Web Services med fokus på kunder i halvleder- og elektronikindustrien. Han arbejder tæt sammen med kunderne for at forstå deres forretningsmæssige udfordringer og identificere, hvordan AWS kan udnyttes til at nå deres strategiske mål. Hans arbejde har primært fokuseret på projekter relateret til kunstig intelligens og maskinlæring (AI/ML). Før han kom til AWS, var han seniorkonsulent hos Deloittes Advanced Analytics-praksis, hvor han ledede workstreams i adskillige engagementer på tværs af USA med fokus på Analytics og AI/ML. Erick har en BS i Business fra University of San Francisco og en MS i Analytics fra North Carolina State University.

Tidsstempel:

Mere fra AWS maskinindlæring