Prestazioni di iBatis rispetto a JDBC
Ho fatto un veloce test per verificare l’overhead di iBatis rispetto a dei semplici statement JDBC. Ho scritto una query che estrae un solo record dato l’id. Ho scritto un programmino Java per far girare la query 100 mila volte sia in modo iBatis che in modo JDBC. L’id del record è sempre rimasto uguale: questo per garantire che il db utilizzasse sempre la sua cache in memoria. Il db utilizzato è stato Postgresql.
Ho ripetuto l’esperimento più volte e fatto la media. I tempi registrati (in microsecondi) sono stati i seguenti:
- iBatis: 312usec
- JDBC: 304usec
Quindi, sì, iBatis ha un impatto sulle prestazioni ma è solo del 3%, quindi minimo.
Un’ultima osservazione: facendo girare la query in psql e registrando i tempi con “explain analyze” i tempi sono costantemente di 51 microsecondi. Cioè Java vede tempi sei volte più lunghi di quello che il db è in grado di fornire. Hmmmm…


Maggio 23rd, 2008 09:46
Una sola domanda, per i confronti dei tempi, misuravi prima o dopo di aver staccato la connessione al DB?
Su Oracle l’avvio di un ServerProcess ha comunque un tempo non indifferente (anche 2/3 decimi di secondo).