Были портированы ряд приложений для работы с БД InterBase (Firebird 1.5) с Delphi 2007 -> Delphi 2010. Использовались компоненты IBX и бесплатная библиотека RxLib (порт на Delphi 2010). Результат: приложения запускаются работают с той же скоростью, что скомпилированные под Delphi 2007, но вот выход из них... раз в 50 медленне (в режиме Debug'a более 3-х минут, при запуске скомпилированного файла вне среды разработки 1,5 - 2 минуты). От производительности техники (~ Pentium 4, более 2000 MГц, 2 Гб ОЗУ) и ОС (WinXP, Windows 7) сей процесс (закрытие приложения) не зависит - одинаково медленно везде и на всем. В проектах довольно много (но не чрезмерно) различных форм, с различными компонентами для отображения наборов данных (в основном гриды). Формы создаются и уничтожаются динамически. Для выборки данных используются (везде) компонент TQuery (или динамически созданный экземпляр класса TQuery). Пишущая и читающая транзакции (Read Commited). Для всех открытых запросов по возможности (где не забыл) в нужное время (OnClose или OnDestroy) выполняется метод Close(). Более того пробовал использовать библиотеки JEDI вместо RxLib. Все тщетно! Может кто знает в чем дело? Или чего посоветовать, чтобы еще такого предпринять для устранения проблемы...
|