L9: Impact Evaluation of AOP in Various Contexts and Devices
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa zaoberá dopadom aspektovo orientovaného programovania (AOP) na výkon a kvalitu softvéru v rôznych prostrediach. Úvodom sú uvedené všeobecné odporúčania: kompilačné tkanie (AspectJ) je rýchlejšie než behové tkanie cez proxy v Spring AOP, ktorého réžia je zanedbateľná pri dlhších operáciách, ako sú transakcie či prístup k databáze. Nasledujú štyri prípadové štúdie: vstavané systémy reálneho času (softvér audio switch), systém riadenia dopravy v real-time Jave, distribuované systémy s architektúrami leader/follower a half-sync/half-async a použitie aspektov na zariadeniach s Androidom. Výsledky ukazujú, že AOP zlepšuje modularitu, znovupoužiteľnosť, udržiavateľnosť a testovateľnosť kódu, v niektorých prípadoch aj výkon, a v distribuovaných systémoch nemá z dlhodobého hľadiska štatisticky významný negatívny vplyv.
- - AspectJ s kompilačným tkaním je približne 8 až 35-krát rýchlejší než Spring AOP založený na proxy objektoch.
- - Réžia proxy v Spring AOP vzniká pri štarte aplikácie a je zanedbateľná pri dlhších operáciách, napríklad pri transakciách alebo prístupe k databáze.
- - Vo vstavanom systéme audio switch AOP zlepšilo využitie pamäte a CPU vďaka výraznému zníženiu počtu správ medzi objektmi.
- - V systéme riadenia dopravy v real-time Jave aspekty umožnili prepísať správu objektov a vlákien a znížili väzbu medzi objektmi (metrika CBO).
- - AOP zlepšilo kvalitatívne atribúty softvéru: zrozumiteľnosť, znovupoužiteľnosť, udržiavateľnosť a testovateľnosť.
- - Pri architektúrach leader/follower a half-sync/half-async je výkon s AOP a bez AOP z dlhodobého hľadiska prakticky rovnaký.
- - Štvrtý prípad sa venuje použitiu aspektov na zariadeniach s Androidom, kde sa vyskytovali špecifické problémy.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky