Optimalizálja a fenntarthatóságot az Amazon CodeWhisperer | Amazon webszolgáltatások

Optimalizálja a fenntarthatóságot az Amazon CodeWhisperer | Amazon webszolgáltatások

Ez a bejegyzés azt vizsgálja, hogyan Amazon Code Whisperer segíthet a kódoptimalizálásban a fenntarthatóság érdekében az erőforrás-hatékonyság növelése révén. A számításilag erőforrás-hatékony kódolás az egyik olyan technika, amelynek célja egy kódsor feldolgozásához szükséges energia mennyiségének csökkentése, és ennek eredményeként segíti a vállalatokat abban, hogy összességében kevesebb energiát fogyasztjanak. A számítási felhő ebben a korszakában a fejlesztők a nyílt forráskódú könyvtárakat és a rendelkezésükre álló fejlett feldolgozási teljesítményt használják ki, hogy nagyszabású mikroszolgáltatásokat építsenek ki, amelyeknek működési szempontból hatékonynak, teljesítőképesnek és rugalmasnak kell lenniük. A modern alkalmazások azonban gyakran a következőkből állnak kiterjedt kód, amely jelentős számítási erőforrásokat igényel. Bár a közvetlen környezeti hatás nem biztos, hogy nyilvánvaló, az aluloptimalizált kód felerősíti a modern alkalmazások szénlábnyomát olyan tényezőkön keresztül, mint a megnövekedett energiafogyasztás, a hosszan tartó hardverhasználat és az elavult algoritmusok. Ebben a bejegyzésben megtudjuk, hogyan segít az Amazon CodeWhisperer kezelni ezeket az aggályokat, és csökkenteni a kódod környezeti lábnyomát.

Az Amazon CodeWhisperer egy generatív mesterséges intelligencia kódoló társ, amely felgyorsítja a szoftverfejlesztést azáltal, hogy javaslatokat tesz a meglévő kódon és a természetes nyelvű megjegyzéseken, csökkenti a teljes fejlesztési erőfeszítést, és időt szabadít fel az ötletelésre, az összetett problémák megoldására és a differenciált kód létrehozására. Az Amazon CodeWhisperer segíthet a fejlesztőknek munkafolyamataik egyszerűsítésében, a kód minőségének javításában, erősebb biztonsági pozíciók kialakításában, robusztus tesztcsomagok létrehozásában és számításilag erőforrásbarát kód írásában, amely segíthet a környezeti fenntarthatóság optimalizálásában. részeként kapható Eszközkészlet a Visual Studio kódhoz, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS ragasztó, és a JetBrains IntelliJ IDEA. Az Amazon CodeWhisperer jelenleg a Python, a Java, a JavaScript, a TypeScript, a C#, a Go, a Rust, a PHP, a Ruby, a Kotlin, a C, a C++, a Shell scripting, az SQL és a Scala nyelveket támogatja.

Az optimalizálatlan kód hatása a számítási felhőre és az alkalmazások szénlábnyomára

Az AWS infrastruktúrája 3.6-szor energiahatékonyabb, mint a vizsgált amerikai vállalati adatközpontok mediánja, és akár 5-ször energiahatékonyabb, mint egy átlagos európai vállalati adatközpont. Ezért az AWS akár 96%-kal is csökkentheti a munkaterhelés szénlábnyomát. Mostantól az Amazon CodeWhisperer segítségével minőségi kódot írhat csökkentett erőforrás- és energiafogyasztás mellett, és teljesítheti a méretezhetőségi célkitűzéseket, miközben kihasználja az AWS energiahatékony infrastruktúráját.

Fokozott erőforrás-felhasználás

Az optimalizálatlan kód a számítási felhő erőforrásainak nem megfelelő használatához vezethet. Ennek eredményeként több virtuális gépre (VM) vagy konténerre lehet szükség, ami növeli az erőforrások elosztását, az energiafelhasználást és a munkaterhelés kapcsolódó szénlábnyomát. Növekedést tapasztalhat a következőkben:

  • CPU kihasználtság – A nem optimalizált kód gyakran nem hatékony algoritmusokat vagy kódolási gyakorlatokat tartalmaz, amelyek futtatásához túl sok CPU-ciklusra van szükség.
  • Memória fogyasztás – A nem hatékony memóriakezelés nem optimalizált kódban szükségtelen memóriafoglalást, felszabadítást vagy adatduplikációt eredményezhet.
  • Lemez I/O műveletei – A nem hatékony kód túlzott bemeneti/kimeneti (I/O) műveleteket hajthat végre. Például, ha a szükségesnél gyakrabban olvas vagy ír adatokat a lemezről, az növelheti a lemez I/O kihasználtságát és késleltetését.
  • Hálózati használat – A nem hatékony adatátviteli technikák vagy a duplikált kommunikáció miatt a rosszul optimalizált kód túlzott mértékű hálózati forgalmat okozhat. Ez magasabb késleltetéshez és megnövekedett hálózati sávszélesség-kihasználáshoz vezethet. A megnövekedett hálózatkihasználás magasabb kiadásokat és erőforrás-szükségleteket eredményezhet olyan helyzetekben, amikor a hálózati erőforrásokat a használat alapján adóztatják, például a számítási felhőben.

Magasabb energiafogyasztás

A nem hatékony kóddal rendelkező, infrastruktúrát támogató alkalmazások több feldolgozási teljesítményt használnak fel. A nem hatékony, felduzzadt kód miatti túlzott számítási erőforrások nagyobb energiafogyasztást és hőtermelést eredményezhetnek, ami ezt követően több energiát igényel a hűtéshez. A szerverek mellett a hűtőrendszerek, az áramelosztó infrastruktúra és egyéb segédelemek is fogyasztanak energiát.

Skálázhatósági kihívások

Az alkalmazásfejlesztés során a méretezhetőségi problémákat a nem optimalizált kód okozhatja. Előfordulhat, hogy az ilyen kód nem skálázódik hatékonyan a feladat növekedésével, ami több erőforrást és több energiát igényel. Ez növeli a kódrészletek által fogyasztott energiát. Amint korábban említettük, a nem hatékony vagy pazarló kódnak összetett hatása van a léptékben.

Az ügyfelek által bizonyos adatközpontokban futtatott kódoptimalizálásból származó megnövekedett energiamegtakarítás még tovább nő, ha figyelembe vesszük, hogy a felhőszolgáltatók, például az AWS több tucat adatközponttal rendelkeznek szerte a világon.

Az Amazon CodeWhisperer gépi tanulást (ML) és nagy nyelvi modelleket használ, hogy valós időben kódjavaslatokat adjon az eredeti kód és a természetes nyelvű megjegyzések alapján, és olyan kódjavaslatokat ad, amelyek hatékonyabbak lehetnek. A program infrastruktúra-használati hatékonysága növelhető a kód optimalizálásával olyan stratégiák segítségével, mint például az algoritmikus fejlesztések, a hatékony memóriakezelés és az értelmetlen I/O műveletek csökkentése.

Kód generálása, befejezése és javaslatok

Nézzünk meg néhány olyan helyzetet, ahol az Amazon CodeWhisperer hasznos lehet.

Az ismétlődő vagy összetett kódok fejlesztésének automatizálásával a kódgeneráló eszközök minimálisra csökkentik az emberi hibák lehetőségét, miközben a platform-specifikus optimalizálásra összpontosítanak. A kialakult minták vagy sablonok használatával ezek a programok olyan kódot hozhatnak létre, amely következetesebben követi a fenntarthatóság bevált gyakorlatait. A fejlesztők olyan kódot állíthatnak elő, amely megfelel bizonyos kódolási szabványoknak, így segítve a konzisztensebb és megbízhatóbb kódot a projekt során. Az eredményül kapott kód hatékonyabb lehet, és mivel eltávolítja az emberi kódolási eltéréseket, és jobban olvasható, javítja a fejlesztési sebességet. Automatikusan megvalósíthatja az alkalmazási program méretének és hosszának csökkentését, például a felesleges kód törlését, a változó tárolásának javítását vagy a tömörítési módszerek használatát. Ezek az optimalizálások segíthetik a memóriafelhasználás optimalizálását, és a csomag méretének csökkentésével növelik a rendszer általános hatékonyságát.

Generatív AI képes fenntarthatóbbá tenni a programozást az erőforrások elosztásának optimalizálásával. Fontos, hogy holisztikusan megvizsgáljuk egy alkalmazás szénlábnyomát. Olyan eszközök, mint Amazon CodeGuru Profiler teljesítményadatokat gyűjthet az összetevők közötti késleltetés optimalizálása érdekében. A profilalkotási szolgáltatás megvizsgálja a kódfuttatásokat, és azonosítja a lehetséges fejlesztéseket. A fejlesztők ezután manuálisan finomíthatják az automatikusan generált kódot ezen eredmények alapján, hogy tovább javítsák az energiahatékonyságot. A generatív mesterséges intelligencia, a profilalkotás és az emberi felügyelet kombinációja olyan visszacsatolási hurkot hoz létre, amely folyamatosan javítja a kód hatékonyságát és csökkenti a környezeti hatásokat.

A következő képernyőképen a CodeGuru Profiler által generált eredmények láthatók késleltetési módban, amely magában foglalja a hálózati és lemezes I/O-t. Ebben az esetben az alkalmazás idejének nagy részét továbbra is bent tölti ImageProcessor.extractTasks (második alsó sor), és szinte végig futható bent, vagyis nem várt semmire. Ezeket a szálállapotokat úgy tekintheti meg, hogy CPU módból késleltetési módra vált. Ez segíthet abban, hogy jó képet kapjon arról, hogy mi befolyásolja az alkalmazás falióra idejét. További információkért lásd: Csökkentse szervezete szénlábnyomát az Amazon CodeGuru Profiler segítségével.

kép

Tesztesetek generálása

Amazon Code Whisperer segíthet teszteseteket javasolni és ellenőrizni a kód működőképességét, figyelembe véve a határértékeket, a szélső eseteket és más lehetséges problémákat, amelyeket esetleg tesztelni kell. Ezenkívül az Amazon CodeWhisperer leegyszerűsítheti az ismétlődő kód létrehozását az egységtesztekhez. Például, ha mintaadatokat kell létrehoznia az INSERT utasítások használatával, az Amazon CodeWhisperer létrehozhatja a szükséges beszúrásokat egy minta alapján. A szoftvertesztelés általános erőforrásigénye az erőforrás-igényes tesztesetek azonosításával és optimalizálásával vagy a redundáns esetek eltávolításával is csökkenthető. A továbbfejlesztett tesztkészletek az energiahatékonyság növelésével, az erőforrás-felhasználás csökkentésével, a hulladék minimalizálásával és a munkaterhelés szénlábnyomának csökkentésével környezetbarátabbá tehetik az alkalmazást.

Az Amazon CodeWhispererrel kapcsolatos gyakorlatiasabb tapasztalatokért lásd: Optimalizálja a szoftverfejlesztést az Amazon CodeWhisperer segítségével. A bejegyzés az Amazon CodeWhisperer kódjavaslatait mutatja be Amazon SageMaker Studio. Ezenkívül bemutatja a javasolt kódot az adatkészlet betöltéséhez és elemzéséhez szükséges megjegyzések alapján.

Következtetés

Ebben a bejegyzésben megtudtuk, hogyan segíthet az Amazon CodeWhisperer a fejlesztőknek optimalizált, fenntarthatóbb kód írásában. A fejlett ML-modellek segítségével az Amazon CodeWhisperer elemzi a kódot, és személyre szabott javaslatokat tesz a hatékonyság javítására, ami csökkentheti a költségeket és a szénlábnyomot.

Kisebb módosításokat és alternatív megközelítéseket javasolva az Amazon CodeWhisperer lehetővé teszi a fejlesztők számára, hogy jelentősen csökkentsék az erőforrás-felhasználást és a kibocsátást a funkcionalitás feláldozása nélkül. Akár egy meglévő kódbázist szeretne optimalizálni, akár az új projektek erőforrás-hatékonyságát szeretné biztosítani, az Amazon CodeWhisperer felbecsülhetetlen segítség lehet. Ha többet szeretne megtudni az Amazon CodeWhisperer és az AWS fenntarthatósági forrásairól a kódoptimalizáláshoz, vegye figyelembe a következő lépéseket:


A szerzőkről

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Isha Dua Senior Solutions Architect, székhelye a San Francisco Bay Area. Céljaik és kihívásaik megértésével segíti az AWS vállalati ügyfeleit a növekedésben, és útmutatást ad nekik, hogyan építhetik fel alkalmazásaikat a felhőben natív módon, miközben biztosítják a rugalmasságot és a méretezhetőséget. Szenvedélyesen rajong a gépi tanulási technológiákért és a környezeti fenntarthatóságért.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Ajjay Govindaram az AWS vezető megoldási építésze. Stratégiai ügyfelekkel dolgozik, akik AI/ML-t használnak összetett üzleti problémák megoldására. Tapasztalata abban rejlik, hogy műszaki irányítást, valamint tervezési segítséget nyújt a szerény és nagyszabású AI/ML alkalmazások telepítéséhez. Ismerete az alkalmazás-architektúrától a big data-ig, az analitikáig és a gépi tanulásig terjed. Szívesen hallgat zenét pihenés közben, tapasztal a szabadban, és szeretivel tölti az időt.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Erick Irigoyen az Amazon Web Services megoldástervezője, aki a félvezető- és elektronikai iparban tevékenykedő ügyfelekre összpontosít. Szorosan együttműködik az ügyfelekkel, hogy megértse üzleti kihívásaikat, és meghatározza, hogyan lehet az AWS-t felhasználni stratégiai céljaik eléréséhez. Munkája elsősorban a mesterséges intelligenciával és a gépi tanulással (AI/ML) kapcsolatos projektekre összpontosított. Mielőtt csatlakozott volna az AWS-hez, vezető tanácsadóként dolgozott a Deloitte Advanced Analytics gyakorlatánál, ahol számos munkafolyamatot vezetett az Egyesült Államokban, az Analyticsre és az AI/ML-re összpontosítva. Erick a San Francisco-i Egyetemen szerzett üzleti BS diplomát, az Észak-Karolinai Állami Egyetemen pedig analitikai diplomát.

Időbélyeg:

Még több AWS gépi tanulás