Optimaliser for bærekraft med Amazon CodeWhisperer | Amazon Web Services

Optimaliser for bærekraft med Amazon CodeWhisperer | Amazon Web Services

Dette innlegget utforsker hvordan Amazon Code Whisperer kan hjelpe med kodeoptimalisering for bærekraft gjennom økt ressurseffektivitet. Beregningsmessig ressurseffektiv koding er en teknikk som tar sikte på å redusere mengden energi som kreves for å behandle en kodelinje og som et resultat hjelpe bedrifter med å forbruke mindre energi totalt sett. I denne epoken med cloud computing, utnytter utviklere nå åpen kildekode-biblioteker og avansert prosessorkraft tilgjengelig for dem for å bygge ut storskala mikrotjenester som må være operasjonelt effektive, ytende og robuste. Imidlertid består moderne applikasjoner ofte av omfattende kode som krever betydelige dataressurser. Selv om den direkte miljøpåvirkningen kanskje ikke er åpenbar, forsterker suboptimalisert kode karbonavtrykket til moderne applikasjoner gjennom faktorer som økt energiforbruk, langvarig maskinvarebruk og utdaterte algoritmer. I dette innlegget oppdager vi hvordan Amazon CodeWhisperer hjelper med å løse disse bekymringene og redusere miljøfotavtrykket til koden din.

Amazon CodeWhisperer er en generativ AI-kodingskompanjon som setter fart på programvareutviklingen ved å komme med forslag basert på eksisterende kode og naturlige språkkommentarer, redusere den generelle utviklingsinnsatsen og frigjøre tid til idédugnad, løse komplekse problemer og skrive differensiert kode. Amazon CodeWhisperer kan hjelpe utviklere å strømlinjeforme arbeidsflytene sine, forbedre kodekvaliteten, bygge sterkere sikkerhetsstillinger, generere robuste testsuiter og skrive beregningsressursvennlig kode, som kan hjelpe deg med å optimalisere for miljømessig bærekraft. Den er tilgjengelig som en del av Verktøysett for Visual Studio Code, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS Lim, og JetBrains IntelliJ IDEA. Amazon CodeWhisperer støtter for tiden Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-skripting, SQL og Scala.

Virkningen av uoptimalisert kode på cloud computing og applikasjoners karbonavtrykk

AWSs infrastruktur er 3.6 ganger mer energieffektiv enn medianen av undersøkte amerikanske bedriftsdatasentre og opptil 5 ganger mer energieffektiv enn gjennomsnittlig europeiske bedriftsdatasenter. Derfor kan AWS bidra til å redusere arbeidsbelastningens karbonavtrykk med opptil 96 %. Du kan nå bruke Amazon CodeWhisperer til å skrive kvalitetskode med redusert ressursbruk og energiforbruk, og oppfylle skalerbarhetsmålene mens du drar nytte av AWS energieffektiv infrastruktur.

Økt ressursbruk

Uoptimalisert kode kan resultere i ineffektiv bruk av nettsky-databehandlingsressurser. Som et resultat kan det være nødvendig med flere virtuelle maskiner (VM-er) eller containere, noe som øker ressursallokeringen, energibruken og det relaterte karbonavtrykket til arbeidsbelastningen. Du kan oppleve økninger i følgende:

  • CPU utnyttelse – Uoptimalisert kode inneholder ofte ineffektive algoritmer eller kodingspraksis som krever for mange CPU-sykluser for å kjøre.
  • Minneforbruk – Ineffektiv minnebehandling i uoptimalisert kode kan resultere i unødvendig minneallokering, deallokering eller dataduplisering.
  • Disk I/O-operasjoner – Ineffektiv kode kan utføre overdreven input/output (I/O) operasjoner. For eksempel, hvis data leses fra eller skrives til disk oftere enn nødvendig, kan det øke disk I/O-utnyttelse og latens.
  • Nettverksbruk – På grunn av ineffektive dataoverføringsteknikker eller duplikatkommunikasjon, kan dårlig optimalisert kode forårsake for mye nettverkstrafikk. Dette kan føre til høyere ventetid og økt utnyttelse av nettverksbåndbredde. Økt nettverksutnyttelse kan føre til høyere utgifter og ressursbehov i situasjoner der nettverksressurser beskattes basert på bruk, som for eksempel i cloud computing.

Høyere energiforbruk

Infrastrukturstøttende applikasjoner med ineffektiv kode bruker mer prosessorkraft. Overbruk av dataressurser på grunn av ineffektiv, oppblåst kode kan resultere i høyere energiforbruk og varmeproduksjon, som deretter krever mer energi til kjøling. Sammen med serverne bruker også kjølesystemene, infrastrukturen for kraftdistribusjon og andre hjelpeelementer energi.

Skalerbarhetsutfordringer

I applikasjonsutvikling kan problemer med skalerbarhet være forårsaket av uoptimalisert kode. Slik kode kan ikke skaleres effektivt ettersom oppgaven vokser, noe som krever flere ressurser og bruker mer energi. Dette øker energien som forbrukes av disse kodefragmentene. Som nevnt tidligere har ineffektiv eller sløsende kode en sammensatte effekt i stor skala.

De sammensatte energibesparelsene ved å optimalisere kode som kunder kjører i visse datasentre, blir enda mer forsterket når vi tar i betraktning at skyleverandører som AWS har dusinvis av datasentre rundt om i verden.

Amazon CodeWhisperer bruker maskinlæring (ML) og store språkmodeller for å gi kodeanbefalinger i sanntid basert på den originale koden og naturlige språkkommentarer, og gir kodeanbefalinger som kan være mer effektive. Programmets infrastrukturbrukseffektivitet kan økes ved å optimalisere koden ved hjelp av strategier inkludert algoritmiske fremskritt, effektiv minneadministrasjon og en reduksjon i meningsløse I/O-operasjoner.

Kodegenerering, fullføring og forslag

La oss undersøke flere situasjoner der Amazon CodeWhisperer kan være nyttig.

Ved å automatisere utviklingen av repeterende eller kompleks kode, minimerer kodegenereringsverktøy muligheten for menneskelige feil mens de fokuserer på plattformspesifikke optimaliseringer. Ved å bruke etablerte mønstre eller maler, kan disse programmene produsere kode som mer konsekvent overholder beste praksis for bærekraft. Utviklere kan produsere kode som samsvarer med bestemte kodestandarder, og bidrar til å levere mer konsistent og pålitelig kode gjennom hele prosjektet. Den resulterende koden kan være mer effektiv og fordi den fjerner menneskelige kodevariasjoner, og kan være mer lesbar, og forbedrer utviklingshastigheten. Den kan automatisk implementere måter å redusere applikasjonsprogrammets størrelse og lengde på, for eksempel å slette overflødig kode, forbedre variabel lagring eller bruke komprimeringsmetoder. Disse optimaliseringene kan hjelpe til med optimalisering av minneforbruk og øker den generelle systemeffektiviteten ved å krympe pakkestørrelsen.

Generativ AI har potensial til å gjøre programmering mer bærekraftig ved å optimalisere ressursallokering. Å se helhetlig på en applikasjons karbonavtrykk er viktig. Verktøy som Amazon CodeGuru Profiler kan samle ytelsesdata for å optimalisere ventetiden mellom komponentene. Profileringstjenesten undersøker kodekjøringer og identifiserer potensielle forbedringer. Utviklere kan deretter manuelt avgrense den automatisk genererte koden basert på disse funnene for å forbedre energieffektiviteten ytterligere. Kombinasjonen av generativ AI, profilering og menneskelig tilsyn skaper en tilbakemeldingssløyfe som kontinuerlig kan forbedre kodeeffektiviteten og redusere miljøpåvirkningen.

Følgende skjermbilde viser deg resultater generert fra CodeGuru Profiler i ventemodus, som inkluderer nettverk og disk I/O. I dette tilfellet tilbringer applikasjonen fortsatt mesteparten av tiden sin i ImageProcessor.extractTasks (andre nederste rad), og nesten hele tiden inne som er kjørbar, noe som betyr at den ikke ventet på noe. Du kan se disse trådtilstandene ved å bytte til latensmodus fra CPU-modus. Dette kan hjelpe deg med å få et godt inntrykk av hva som påvirker veggklokketiden til applikasjonen. For mer informasjon, se Reduser organisasjonens karbonavtrykk med Amazon CodeGuru Profiler.

bilde

Generer testcases

Amazon Code Whisperer kan hjelpe med å foreslå testtilfeller og verifisere kodens funksjonalitet ved å vurdere grenseverdier, kanttilfeller og andre potensielle problemer som kanskje må testes. Amazon CodeWhisperer kan også forenkle å lage repeterende kode for enhetstesting. Hvis du for eksempel trenger å lage eksempeldata ved å bruke INSERT-setninger, kan Amazon CodeWhisperer generere de nødvendige innleggene basert på et mønster. De generelle ressurskravene for programvaretesting kan også reduseres ved å identifisere og optimalisere ressurskrevende testtilfeller eller fjerne overflødige. Forbedrede testsuiter har potensial til å gjøre applikasjonen mer miljøvennlig ved å øke energieffektiviteten, redusere ressursforbruket, minimere avfall og redusere arbeidsbelastningens karbonavtrykk.

For en mer praktisk opplevelse med Amazon CodeWhisperer, se Optimaliser programvareutvikling med Amazon CodeWhisperer. Innlegget viser kodeanbefalingene fra Amazon CodeWhisperer i Amazon SageMaker Studio. Den demonstrerer også den foreslåtte koden basert på kommentarer for lasting og analyse av et datasett.

konklusjonen

I dette innlegget lærte vi hvordan Amazon CodeWhisperer kan hjelpe utviklere med å skrive optimalisert, mer bærekraftig kode. Ved å bruke avanserte ML-modeller analyserer Amazon CodeWhisperer koden din og gir personlige anbefalinger for å forbedre effektiviteten, noe som kan redusere kostnadene og bidra til å redusere karbonavtrykket.

Ved å foreslå mindre justeringer og alternative tilnærminger, gjør Amazon CodeWhisperer det mulig for utviklere å redusere ressursbruk og utslipp betydelig uten å ofre funksjonalitet. Enten du ønsker å optimalisere en eksisterende kodebase eller sikre at nye prosjekter er ressurseffektive, kan Amazon CodeWhisperer være et uvurderlig hjelpemiddel. For å lære mer om Amazon CodeWhisperer og AWS Sustainability-ressurser for kodeoptimalisering, vurder følgende neste trinn:


Om forfatterne

Optimaliser for bærekraft med Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Isha Dua er en senior løsningsarkitekt basert i San Francisco Bay Area. Hun hjelper AWS-bedriftskunder med å vokse ved å forstå deres mål og utfordringer, og veileder dem om hvordan de kan bygge applikasjonene sine på en skybasert måte samtidig som de sikrer robusthet og skalerbarhet. Hun brenner for maskinlæringsteknologier og miljømessig bærekraft.

Optimaliser for bærekraft med Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Ajjay Govindaram er Senior Solutions Architect hos AWS. Han jobber med strategiske kunder som bruker AI/ML for å løse komplekse forretningsproblemer. Hans erfaring ligger i å gi teknisk veiledning samt designassistanse for beskjedne til storskala AI/ML-applikasjoner. Kunnskapen hans spenner fra applikasjonsarkitektur til big data, analyser og maskinlæring. Han liker å lytte til musikk mens han hviler, opplever utendørs og tilbringe tid med sine kjære.

Optimaliser for bærekraft med Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Erick Irigoyen er en løsningsarkitekt hos Amazon Web Services med fokus på kunder innen halvledere og elektronikkindustrien. Han jobber tett med kundene for å forstå deres forretningsutfordringer og identifisere hvordan AWS kan utnyttes for å nå deres strategiske mål. Arbeidet hans har først og fremst fokusert på prosjekter knyttet til kunstig intelligens og maskinlæring (AI/ML). Før han begynte i AWS, var han seniorkonsulent ved Deloittes Advanced Analytics-praksis hvor han ledet arbeidsstrømmer i flere engasjementer over hele 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.

Tidstempel:

Mer fra AWS maskinlæring