![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Доооолгий Form.Showmodal? [D5, WinXP]
Vasilii © (2002-05-14 14:53:00)Всем Здраствуйте! Столкнулся с такой проблемой: при первичном открытии модальной формы (на каждый вызов форма create’ится, на close, соответственно, Form.Release) очень долго (~12 сек) выполняется Form.Showmodal. При последующих вызовах формы открытие происходит гораздо быстрее (~1.5 сек). Почему? Как решить проблему первого открытия формы?
Vasilii (2002-05-16 11:30:00) [1]Закоментил - остались. Буду мучить F7.
Кулюкин Олег (2002-05-15 16:43:00) [2]2 Vasilii
Проведем эксперимент.
Закомментарьте открытие датасета, и посмотрите, останутся ли тормоза.
Если да, то см. Виктор Щербаков © (15.05.02 13:24) (про F7)
Игорь Шевченко (2002-05-15 15:22:00) [3]И в случае постоянного изменения данных тоже :-)
Скорость обработки запроса, в основном, определяется сервером.
Впрочем, смотря какой запрос и какой сервер...
С уважением,
Vasilii (2002-05-15 15:19:00) [4]>Игорь Шевченко А в случае постоянного изменения данных?
Игорь Шевченко (2002-05-15 15:11:00) [5]Существует кэш у сервера, благодаря ему последующие запросы могут выполняться быстрее.
С уважением,
Vasilii (2002-05-15 14:54:00) [6]Повторяюсь: На момент торможения запрос не выполняется. Форма КАЖДЫЙ раз создается заново. Все DataSet"ы переоткрываются (все запросы "перезапрашиваются").
Кулюкин Олег (2002-05-15 14:21:00) [7]2 Vasilii © (15.05.02 14:12)
Скорее всего, дело именно в запросе который выполняется при открытии формы.
А последующие открытия формы не тормозят благодаря кешированию.
Vasilii (2002-05-15 14:12:00) [8]А почему только в первый раз медленно?
Виктор Щербаков (2002-05-15 13:47:00) [9]Vasilii © (15.05.02 13:44)
> F7 уводит в такие дебри
А ты не лезь в дебри.
Ведь F8 еще есть :)
Используя комбинацию F7 и F8 можно найти долговыполняющуюся строчку.
Vasilii (2002-05-15 13:44:00) [10]>Виктор Щербаков
F7 уводит в такие дебри. Ладно бы я ошибку искал, так ведь ищу задержку по времени, а считать в каком случае все циклы пробегают быстрее или медленнее по моему не реально. Но главное не могу понять: почему второй и последующие разы - быстро?! Может что-то куда-то кешируется?
Виктор Щербаков (2002-05-15 13:24:00) [11]to Vasilii ©
Есть замечательная кнопка F7. Она тебе поможет. Конечно это займет некоторое время, но ИМХО лучше чем гадать (и тебе и нам).
Vasilii (2002-05-15 13:17:00) [12]TQuery.Open происходит на TForm.FormShow, а торможение раньше, между TForm.FormCreate и TForm.FormShow.
Дмитрий757567 (2002-05-15 10:25:00) [13]>Vasilii
А к гриду приклеен TQuery, который выполняет офигенный запрос к базе данных?
Vasilii (2002-05-15 10:12:00) [14]Много чего: Гриды, кнопки, панели.
koks (2002-05-15 09:44:00) [15]А что у тебя за форма - в смысле что не ней...
Vasilii (2002-05-15 09:32:00) [16]>Johnmen
1. Из хэлпа:"Use Release to destroy the form and free its associated memory." Я же говорил, что форма каждый раз создается заново.
2. Пусто.
Johnmen (2002-05-14 15:59:00) [17]1. все-таки Release-то убери...
2. а в OnActivate ?
Vasilii (2002-05-14 15:37:00) [18]>Johnmen В порядке выполнения в программе:
Create > OnCreate - быстро
\/
Showmodal - очень медленно
\/
OnShow - быстро.
Виктор Щербаков (2002-05-14 15:13:00) [19]А ты отладчиком её, отладчиком!
Может найдешь то, что так долго выполняется и нам расскажешь. Интересно же.
Johnmen (2002-05-14 15:11:00) [20]1. Form.Release - это к чему ???!!!
2. Видимо в OnCreate или OnShow прописано что-то долгое и нудное... :-)))