Összetett modell-lekérdezések pontos memóriamérése

OData támogatás
Konzulens:
Dr. Bergmann Gábor
Méréstechnika és Információs Rendszerek Tanszék

Teljesítményérzékeny Java szoftverek tervezésekor egy funkció megvalósítási lehetőségei közül történő választáshoz fontos tudni, hogy az egyes alternatívák mennyi memóriát használnak futás közben, hisz ez nagyban befolyásolja a maximálisan kezelhető feladatok méretét, valamint a Java memóriakezeléséből adódóan a program futásának gyorsaságát. A részben a tanszéken fejlesztett VIATRA Query nyílt forráskódú modell-lekérdező keretrendszer teljesítményelemző szolgáltatása két memóriaállapot közti különbözet automatizált mérésével képes lekérdezések memóriaigényét meghatározni, és így a specifikációjuk és végrehajtásuk módozatait összehasonlítani.

A Java programok automatizált memóriamérésére léteznek különböző megoldások, ám a Java virtuális gép heap kezelésének sajátosságaiból adódóan a memória microbenchmarking céljára egyszerűen elérhető eszközök nem szolgáltatnak pontos értékeket. Amennyiben egy összetett szoftverben egy komponens memóriaigénye két memóriaálla¬pot közti különbségként áll elő, a mérési adatok szórása különösen megnehezíti a helyes következtetések levonását. Feladatom tehát, hogy létrehozzak egy olyan microbenchmark jellegű memóriamérési modult, nagy pontossággal határozza meg az aktuálisan használt „live heap” memóriaméretet.

A munka során megismertem, milyen memóriamérési technikák léteznek Java virtuális gépeken, és elemeztem, mellyel lehetne a legpontosabb mérést elérni. Kiválasztottam egy mérési technológiát, és saját alkalmazáson igazoltam annak pontosságát. Majd megvalósítottam egy újrafelhasználható eszközt az automatizált memóriamérésre.

Az elkészült megoldásomat beépítettem a VIATRA Query teljesítményelemző szolgáltatásába. A mérések eredményét összevetettem a korábban alkalmazott megközelítéssel, és megvizsgáltam, mennyivel lett pontosabb az így kapott eredmény.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.