Regisztráció és bejelentkezés

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ő)

helyezés

I. helyezett