Kód és rendszer vizsgálat (első rész)
A néhány debuggolási és profiling lehetőséget fogok bemutatni nagyvonalakban, valamit pár olyan dolgot ami nekem nem tetszik, a most használt rendszerek kialakításában.
Profiling/Debugging téren komoly gondokkal küzdünk, nem csak mi ez a zárt világra is legalább annyira igaz, de végső konkluziót csak később vonom le.
Elég sok olyan eszközbe botlottam kutatásaim során ami PHP, vagy Java teljesítményét elemzi, ezek tipikusan olyan nyelvek amikhez mindenkit hozzá engednek, még, ha nincs is tisztában azzal mit is művel az eszköz a kezébén, nyílván utólag egyszerűbb egy elmző szoftver segítségével nyomára bukkani a performance gondok forrására, mit végignyálazni a looser kódját.
Manapság olyan bonyolultságú kódokra van szükség, amikben a legnagyobb odafigyelés ellnére is megbújhatnak ilyen vagy rosszabb mumusok, hatékony eszközökre lenne szüksége C/C++(/D/ASM/Fortran) fejlesztőknek is. A kernel berkeinek tanulmányozásáról nem is beszélve.
Jónéhány ilyen eszköz hever szétszortan, amik egy-egy típusú probléma megkersésre alkalmasak csak, vagy félig kész x éve elhagyott projectek. De a fejlesztők Svájci bicskáját még nem találtam meg, talán csak legenda.
(Nem célom most leporolni ezeket (zsákba macska ketegória), inkább az ismertebb/említésre méltő megoldásokat veszem gorcső alá)
Bemelegítésnek:
Egy egyszerű ámbár látványos eszköz a sysprof.
http://www.daimi.au.dk/~sandmann/sysprof/
sysprof-module (Linux)kernel modulra van szükség a működéséhez.
Egyszerű szép kis GUI -val rendelkezik.
Nem kell modosítania kódot, az egész rendszert vizsgálja, különösebb követelménye nincs.
Megmutatja library / binárisra lebontva mennyi időt töltött ott a CPU, ki zaklatta kernelt.
Hasznos akkor lehet, ha nem tudjuk a mi progink a szar vagy library amit használ.
Többnyire haszontalan, de jó tudni, hogy ilyen is van.
Debugging symbolok, ha rendelkezésre állnak ettől részletesebb infót is adhat, függvényekre lebontva.
(Folyt köv., nem csak eszt találtam annyira nem rossz helyzet :))