Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Доооолгий 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 прописано что-то долгое и нудное... :-)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо