[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