2007. június 14., csütörtök

Mennyi az annyi...

A JDBC tuningolós bejegyzésben említettem hogy elég impresszív sebességnövekedést lehet elérni olyan dologgal amihez a kliens kódon semmit nem kell változtatni, na itt van egy mérési eredmény.
  • AMD 1600-as postgres 8.1 szerver
  • AMD 2400-as java kliens, sun jdk 1.6, default VM opciók
  • persze linux mindkettő
  • 10/100-as ethernet
Szóval átlagos cucc.
Prepared statement cache nélkül a teszt kód 647 ms
Prepared statement cache használatával a teszt kód 550 ms
A teszt kód egyébként insertekből és deletekből áll, selectekkel valószniűleg nagyobb a különbség mert nem játszik annyit a lassú merevlemez, vm-tuninggal meg méginkáb, mert nem játszik annyit egy rosszul paraméterezett VM. Csak most mindehhez fáradt vagyok.

A kettő között annyi a különbség tehát hogy az első mindig újra létrehozza a PreparedStatement objektumot és újra átküldi a SQL stringet a szervernek, a második eredmény pedig enélkül, csak kis pool logikát használva.

Ez így olyasminek tűnik aminek érdemes utánnanézni holmi tuning esetén, nem?