[Java lista] Oracle Java performance
Laszlo Merenyi
meri at merysoft.hu
2009. Jún. 22., H, 15:06:05 CEST
Szia,
Esetleg erdemes lehet megnezni, hogy a JDBC-e a szuk keresztmetszet. Ha
preparedStatement-et hasznaltok, erdemes hasznalni a setFetchSize()-ot,
es egy nagyobb erteket (default: 10) beallitani, csodakra kepes (bar
paralell a memoriafoglalas no).
Tippek meg a jdbc-vel kapcsolatban:
http://www.precisejava.com/javaperf/j2ee/JDBC.htm
-meri
> Sziasztok!
>
> Van egy feladatunk, ami egy elég bonyolult képlet segítségével számít
> ki egy értéket. Úgy döntöttünk, hagy Java segítségével oldjuk meg a
> problémát. El is készült a programocska, ami kliens gépen futtatva 53
> mp alatt futott le, adatbázisba betöltve viszont már 1004 mp kellett
> neki. Ez a csaknem 20szoros különbség egy kicsit elkedvtelenített.
>
> A megoldás során az adatokat kétdimenziós double tömbökbe töltjük be,
> elvégezzük a varázslatot, és visszaírjuk az adatbázisba az eredményt.
>
>
> A logok megnézése során azt látom, hogy a memória foglalások elég
> lassúak (átlagosan 58 vs 3 msec).
>
> Viszont az idő kb 85%-át mégiscsak az eredmény kiszámítása foglalja
> le, átlagosan 27x több időt használva, mint a kliensen. Itt már kész
> 2d tömbökből olvassuk ki az adatokat két egymásba ágyazott for
> ciklussal, osztunk, szorzunk, négyzetre emelünk, logaritmust
> számolunk.
>
> Az a logokból nem derül ki, hogy a tömbértékek kiolvasása tart
> sokáig, vagy a matematikai művelet elvégzése.
>
> A fentiekből én azt látom, hogy az Oracle nem szeret (2d) tömbökkel
> dolgozni. Probáltam minimalizálni a tömbműveletek számát, de sajnos
> így sem lett sokkal gyorsabb.
>
> Tudtok-e valami megoldást erre a problémára? Esetleg más
> adatszerkezetet kellene használni?
>
> Kösz: VigB
>
> ui: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
További információk a(z) Javalist levelezőlistáról