Я занимаюсь профилированием своего Java-приложения и нашел интересную статистику для вызова jdbc PreparedStatement:
Ниже приведены сведения о среде: База данных: Sybase SQL Anywhere 10.0.1 Драйвер: com.sybase.jdbc3.jdbc. Пул подключений SybDriver: c3p0 JRE: 1.6.0_05
Рассматриваемый код приведен ниже:
try {
ps = conn.prepareStatement(sql);
ps.setDouble(...);
rs = ps.executeQuery();
......
return xyz;
}
finally {
try {
if (rs != null) rs.close();
if (ps != null) ps.close();
}
catch (SQLException sqlEx) {
}
}
Из статистики JProfiler я обнаружил, что только этот конкретный оператор resultspace.close () занимает много времени. Он варьируется от 25 мс до 320 с, в то время как для других кодовых блоков, которые имеют идентичную природу, я обнаружил, что это занимает около 20 микросекунд.
На всякий случай я провел этот тест производительности несколько раз и подтвердил эти данные. Меня озадачивает такое поведение - Мысли?