Форум: "Начинающим";
Текущий архив: 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.042 c