Проблема производительности Hibernate NullableType - PullRequest
1 голос
/ 06 августа 2011

У меня проблема с производительностью одного из моих запросов, и после профилирования с помощью jprofiler я установил, что 60% времени запроса находится в библиотеке гибернации joda с вызовами nullSafeSet и nullSafeGet.Я не могу понять, почему он проводит там столько времени.

Извлекаемый объект домена содержит два атрибута DateTime, оба из которых могут быть нулевыми.Запрос, который я выполняю (который занимает <1 мс), проверяет равенство для одного из значений времени даты, чтобы убедиться, что он равен нулю и меньше, чем сравнение для другой даты.Jprofiler вызывает nullSafeSet один раз, а nullSafeGet вызывается дважды.Выполнения nullSafeGet занимают в общей сложности 19,7 мс, а nullSafeSet - 25,9 мс.Метод, который nullSafeSet вызывает и тратит большую часть своего времени, равен <code>java.sql.PreparedStatement.setTimestamp, а для вызовов nullSafeGet время тратится в конструкторе org.joda.time.convert.ConverterManager.

У кого-нибудь есть предложения относительно того, как я могу улучшить эту ситуацию?!

Я не уверен, будет ли полезен скриншот ниже или нет, или даже будет ли он разборчивым.Это вывод из jprofiler, показывающий, на что тратится время и выполняется запрос.

enter image description here

...