Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

Моя программа долго загружается   Найти похожие ветки 

 
Turboon   (2008-07-29 16:48) [0]

Проблема в том, что между событиями OnCreate и OnShow проходит секунд 10.
Что происходит в этом промежутке, я не знаю.
Подскажите, как можно оптимизировать программу?


 
tesseract ©   (2008-07-29 16:51) [1]

Отладчиком и профайером посмотреть.


> Что происходит в этом промежутке, я не знаю.


Это точно твоя программа ?


 
stas ©   (2008-07-29 16:57) [2]

Программа из 1-й формы?
Что на ней лежит?


 
oldman ©   (2008-07-29 16:59) [3]


> Что происходит в этом промежутке, я не знаю.


Собственно Create и происходит...
С инициализацией переменных и объектов, их настройкой и т.д.

А что, 10 секунд для старта программы это много?


 
Плохиш ©   (2008-07-29 17:04) [4]


> Что происходит в этом промежутке, я не знаю.

Открываются все ваши TTable...


 
Григорьев Антон ©   (2008-07-29 17:09) [5]

Ненужные формы из автозагрузки удалены?


 
Turboon   (2008-07-29 17:13) [6]

1. Программа не совсем моя, я ее дорабатываю. После некоторой корректировки (добавлена пара компонентов и пара процедур) время загрузки увеличилось с 3-4 до 10 секунд.
Я ставил MessageBox"ы в конец FormCreate и в начало FormShow. Между их появлениями проходит секунд 8 минимум.
Отладчиком встроенным проверить? Или внешним? И что такое профайер я не знаю :(

2. Нет, программа из нескольких форм. В обработчике OnCreate главной формы вызывается форма авторизации, отрабатывает быстро, но главная форма появляется через 10 сек.
На главной форме лежат панели, TIB - компоненты, TreeList"ы.

3. Многовато. Я бы хотел каким-либо образом отобразить ход процесса загрузки для пользователя (прогрессбар, например, вывести), или сократить задержку.


 
oldman ©   (2008-07-29 17:14) [7]


> Плохиш ©   (29.07.08 17:04) [4]
> Открываются все ваши TTable...


Скорее:
Загружаются все ваши TImage...
:)


 
Игорь Шевченко ©   (2008-07-29 17:15) [8]


> 3. Многовато. Я бы хотел каким-либо образом отобразить ход
> процесса загрузки для пользователя (прогрессбар, например,
>  вывести), или сократить задержку.


Splash-форму повесь, как в Delphi и все будет хорошо


 
tesseract ©   (2008-07-29 17:16) [9]


> или сократить задержку.


Верни всё на место :-)
Отладчик тебе выдаст время выполения процедур, только на твой глаз. Профайлер даст рельное время.


 
oldman ©   (2008-07-29 17:18) [10]


> После некоторой корректировки (добавлена пара компонентов


каких?


 
oldman ©   (2008-07-29 17:19) [11]


> Turboon   (29.07.08 17:13) [6]
> 1. Программа не совсем моя, я ее дорабатываю.


читаем сабж:


> Моя программа долго загружается


Врать не надо по телефону! ©


 
oldman ©   (2008-07-29 17:21) [12]

ну...
и код OnCreate в студию
и код Unit1 тоже, пожалуй


 
Turboon   (2008-07-29 17:22) [13]


> > Плохиш ©   (29.07.08 17:04) [4]
> > Открываются все ваши TTable...
>
>
> Скорее:
> Загружаются все ваши TImage...
> :)


:))) Ничего подобного!

> Григорьев Антон ©   (29.07.08 17:09) [5]
> Ненужные формы из автозагрузки удалены?


Антон, большое спасибо! Удалены, и время загрузки опять 3 секунды! :))
Провел небольшой эксперимент - обнаружил, какой кусок кода (если его можно так назвать :))) ) тормозил. Вот он:
 Ini := TIniFile.Create(FileName);
 Path := Ini.ReadString("Path","zpath","C:\");
Я его закомментил, и тормоза пропали :))


 
Turboon   (2008-07-29 17:25) [14]


> Верни всё на место :-)
> Отладчик тебе выдаст время выполения процедур, только на
> твой глаз. Профайлер даст рельное время.

Ок, пойду нагуглю себе профайлер :))


 
Turboon   (2008-07-29 17:26) [15]

В общем-то проблема больше не актуальна, но если кто-нибудь подскажет мне, почему это:

>  Ini := TIniFile.Create(FileName);
>  Path := Ini.ReadString("Path","zpath","C:\");

вызывало тормоза, тому большой респект.


 
Игорь Шевченко ©   (2008-07-29 17:30) [16]


> В общем-то проблема больше не актуальна, но если кто-нибудь
> подскажет мне, почему это:
>
> >  Ini := TIniFile.Create(FileName);
> >  Path := Ini.ReadString("Path","zpath","C:\");
>
> вызывало тормоза, тому большой респект.


Это не может вызывать тормоза


 
Turboon   (2008-07-29 17:32) [17]


> Это не может вызывать тормоза


Но вызывает!! :))


 
Turboon   (2008-07-29 17:35) [18]

Каюсь! Ошибся. Задержку вызывает эта строка
 DirTree.Path := Path;
DirTree - это TShellTreeView


 
oldman ©   (2008-07-29 17:35) [19]


> Turboon   (29.07.08 17:22) [13]
> Провел небольшой эксперимент - обнаружил, какой кусок кода
> (если его можно так назвать :))) ) тормозил. Вот он:
>  Ini := TIniFile.Create(FileName);
>  Path := Ini.ReadString("Path","zpath","C:\");
> Я его закомментил, и тормоза пропали :))


Проведи "небольшой эксперимент №2":
Закоменти каждую строку в отдельности и выясни, что тормозит - Create или ReadString


 
oldman ©   (2008-07-29 17:36) [20]

Удалено модератором


 
Loginov Dmitry ©   (2008-07-29 19:11) [21]

> Провел небольшой эксперимент - обнаружил, какой кусок кода
> (если его можно так назвать :))) ) тормозил. Вот он:
> Ini := TIniFile.Create(FileName);
> Path := Ini.ReadString("Path","zpath","C:\");
> Я его закомментил, и тормоза пропали :))


Это не может вызывать тормоза. Реальные (жуткие тормоза) может вызывать WriteString() при запущенном NOD32.


 
Сергей М. ©   (2008-07-29 20:07) [22]


> Turboon


Если не желаешь пользовать отладчик, то тряси бубен.


 
++vist++ ©   (2008-07-29 23:29) [23]

> Проблема в том, что между событиями OnCreate и OnShow проходит секунд 10.

Какой у вас процессор?


 
KilkennyCat ©   (2008-07-30 04:36) [24]

Удалено модератором


 
++vist++ ©   (2008-07-30 07:35) [25]


> у людей - моск. а у компов - процессор. а еще есть препроцессор,
>  сопроцессор, прогрессор ,  просто цессор, оссиллограф и
> холодильник.


Я просто про то, что Дельфа кушает очень много памяти, да и вообще ресурсов! Так что на слабом проце программа может работать медленно!


 
KilkennyCat ©   (2008-07-30 08:47) [26]

Удалено модератором


 
Turboon   (2008-07-30 10:46) [27]


> Сергей М. ©   (29.07.08 20:07) [22]
>
> > Turboon
>
>
> Если не желаешь пользовать отладчик, то тряси бубен.


А поконкретнее, какой отладчик ты имеешь в виду?
Встроенный дельфовский, или OllyDbg, к примеру?


 
Turboon   (2008-07-30 10:46) [28]

Удалено модератором


 
Slym ©   (2008-07-30 12:28) [29]

DirTree.Path := Path;
у меня в пределах 1 сек... может несколько раз вызываешь? поставь брякпоинт


 
KilkennyCat ©   (2008-07-30 13:08) [30]


> Slym ©   (30.07.08 12:28) [29]

если поставить брякпоинт, это явно не ускорит. даж наоборот. я даж затрудняюсь определить, на скока затормозит.


 
++vist++ ©   (2008-07-31 06:07) [31]


> Проблема в том, что между событиями OnCreate и OnShow проходит
> секунд 10.


Напиши хотя бы словами список действий, который выполняется между этими событиями!


 
@!!ex ©   (2008-07-31 08:36) [32]

> [25] ++vist++ ©   (30.07.08 07:35)

да нифига подобного. Дельфевые программы даже на з266 работаю без проблем.


 
User   (2008-07-31 09:35) [33]

... а почему бы не вклинить
var
 t: array[1..n] of TDateTime;
...
begin
...
t[i]:= Now; Inc(i);
...
t[i]:= Now; Inc(i);
...
end;

после каждого действия и в Real-Time анализировать результаты задержки ...?


 
Leonid Troyanovsky ©   (2008-07-31 09:52) [34]


> User   (31.07.08 09:35) [33]

> после каждого действия и в Real-Time анализировать результаты
> задержки ...?

Я бы даже сказал: после каждого акта.

--
Regards, LVT.


 
Turboon   (2008-07-31 10:54) [35]


> DirTree.Path := Path;
> у меня в пределах 1 сек... может несколько раз вызываешь?
>  поставь брякпоинт


Я по разному пробовал. В любом лучае позиционирование DirTree на Path вызывает серьезную задержку.


 
Сергей М. ©   (2008-07-31 11:43) [36]


> Встроенный дельфовский, или OllyDbg, к примеру?


Встроенный дельфовский, разумеется.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.041 c
2-1217926238
demon
2008-08-05 12:50
2008.09.14
Как узнать размеры окна через API?


2-1217518989
Евгений Р.
2008-07-31 19:43
2008.09.14
Есть ли такой компонент?


3-1205917843
pavel_guzhanov
2008-03-19 12:10
2008.09.14
rf сделать в запросе два варианта записи в одно поле?


2-1217519710
dars73
2008-07-31 19:55
2008.09.14
как отвязать программу от определенного места


15-1216878566
Msd
2008-07-24 09:49
2008.09.14
Помогите с МеМО





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский