Hatékony sorosítás dinamikus kód emittálással .NET platformon
A szolgáltatásorientált architektúra lehetővé teszi a fejlesztők számára, hogy lazán kapcsolódó és platformfüggetlen módon hozzanak létre komplex rendszereket, amelyek üzleti vagy más munkafolyamatokat támogatnak. Ezen rendszerek elemei elosztott módon működnek, így kulcsfontosságú a kommunikáció megbízhatósága és hatékonysága.
Az architektúrát a .NET keretrendszer a Windows Communication Foundation (WCF) osztálykönyvtárral támogatja [1]. A csomag felel egyebek mellett azért is, hogy a küldendő és a vett adatokat megfelelő formátumra alakítsa küldés előtt ill. vétel után. Ez utóbbi a sorosítás folyamata.
Számos esetben azonban mind a szolgáltatások, mind pedig az azokat igénybe vevő szoftverek .NET platformon futnak – ez pedig lehetőséget ad arra, hogy optimalizáljuk platformspecifikus adatok felhasználásával vagy épp elhagyásával a kommunikációt.
Bár a WCF tartalmaz implementációt erre a speciális esetre is, méréseink során úgy találtuk, hogy ennek hatékonysága sokszor nemhogy jobb, hanem rosszabb, mint az általános esetre megírt variánsnak. Célunk tehát az volt, hogy a fenti megoldásoknál gyorsabb komponenst adjunk a fejlesztők kezébe.
Miután egyedi sorosítókkal sikerült olyan mérési adatokat produkálni, amelyek a már rendelkezésre álló eszközök mért adatainál jóval kedvezőbbek voltak, különböző, általánosabb, a lehető legtöbb adatszerkezetre működő sorosítókat dolgoztunk ki folyamatosan szem előtt tartva a hatékonyságot, végső célként azt kitűzve, hogy a lehető legjobban meg tudjuk közelíteni a kevésbé általános megoldások időigényét.
Eredményeink azt mutatják, hogy van gyorsabb alternatíva a „beépített” megoldásoknál, amelyek felhasználásával időt spórolhatunk meg a kommunikáció során – ez pedig mind az alkalmazások üzemeltetői, mind a felhasználói oldalról mérhető teljesítményjavulást hozhat.
szerző
-
Nagy Ákos
mérnök informatikus
nappali
konzulens
-
Kővári Bence
, (külső)