Ускорить запуск приложения
|
|
Sam726 | Дата: Пятница, 27 Ноября 2009, 02:40 | Сообщение # 1 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Прозьба такова. У кого нормальный комп (2 ядра, 2 Гб. оперативы) скачать демо версию моей програмки и запустить ее. Проблема в том что там напичкано много всяческих объектов и прога запускается 11 секунд. Это такие показатели были у меня (на моем компе). Вот и нужно узнать в чем проблема. В моем компе или в том что в проге куча объектов. Очень надо знать. Поскольку возможно тогда лучше запускать легкую прогу с кодами для создания нужных объектов... Всем кто протестирует и напишет результат большое спасибо! Ссылка: http://mad-dog.wen.su/Download.rar
|
|
| |
YURIY | Дата: Пятница, 27 Ноября 2009, 02:50 | Сообщение # 2 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Ничерта себе, ровно 11 сек! 2 ядра, 2.3 Ггц каждое, 3 гига оперативки. Тут дело скорее не в количестве объектов, а в грфике и прочей неоптимизированной ерунде, которая грузится. Ну вообще, обычно долгая загрузка программы связа с большими внедрёнными файлами. Но у тебя там только шрифт больше 100 кило. Он программу застопорить так не сможет. В KnowExt только база одна больше метра во внедрённых - программа ведь быстро открывается. Так что, оптимизируй свой проект лучше.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 02:53 | Сообщение # 3 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Вообще получается проблема в программе. Да?
|
|
| |
YURIY | Дата: Пятница, 27 Ноября 2009, 02:55 | Сообщение # 4 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Да. Нужно оптимизировать там всё. Объекты, графику и прочее.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 03:01 | Сообщение # 5 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| В принцепе это уже и есть более мение оптимизированная версия. Первая вообще занимала более 3 метров (но грузилась также). Тогда у мя было 12 страниц, а теперь я сжал все в одну. Ну что ж. Попробуем теперь создавать объекты после запуска проги. Может так и впрямь быстрее будет...
|
|
| |
Sower | Дата: Пятница, 27 Ноября 2009, 06:19 | Сообщение # 6 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| Большое количесво страниц очень сильно грузит прогу и на размер влияет и на скорость загрузки тоже, такчто надо стараться не использовать много страниц.
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 12:16 | Сообщение # 7 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| странно вообще, чего там такого чтобы запускалось стока времени (у меня 16с). графики вроде нету. ну попробуй ради эксперимента отключить/убрать всю графику и фоны, останутся только обьекты, будет ли быстрее? хотя по идее, вряд ли, графики особой я не увидел. Тогда остается вариант что ты очень уж сильно наворотил в скриптах программы, возможно некоторые вещи можно реализовать проще. ну и вобще, чтобы конкретно сказать, надо повсмотреть исходник.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 12:16 | Сообщение # 8 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| ХуГу! Да... Результат поражает. Вообщем я провел небольшие тесты и вот что получилось! 1 проэкт: Наличие: 3 пустых скрипта и кнопка. Кнопка загружает в скрипты из внешнего *.txt файла скрипт. В скрипте пропись для создания Rectangle (100 штук), TextButton (100 штук), HotSpot (100 штук) Всего 300 объектов. Размер *.exe файла: 520 кб. Время загрузки: 0.60 секунд (тоесть меньше секунды) 2 проэкт: Наличие: Rectangle 100 штук, TextButton 100 штук, HotSpot 100 штук. Размер *.exe файла: 622 кб. Время загрузки: 1.30 секунд (тоесть чуть больше секунды) Результат на лицо. Если загружать скрипт с внешнего файла и создавать объекты после запуска программы, то это значительно ускоряет загрузку и уменьшает размер проэкта. Я все сам проверил трижды!
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 12:19 | Сообщение # 9 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| короче погоди, не торопись. Тут все дело в том, чтобы поскорее появилось главное окно программы (ведь его появление воспринимается как факт, что программа загрузилась, верно?), а после его появления продолжаем подгрузку остального барахла в фоновом режиме, незаметно. А так конечно, если перед стартом ждать пока все полностью прогрузится, будет заметно что долго.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 12:25 | Сообщение # 10 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Ну не знаю... Но когда проэкт загружен и мы создаем объекты то они создаются мгновенно. Но все же я думаю что мне можно попробовать сделать скрипты внешними, поскольку там дофига скриптов, да и обектов хватает...
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 12:38 | Сообщение # 11 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| весь вопрос в том, как ты их написал... рискну предположить что в стартовом скрипте много обработки данных в циклах? нужно пересмотреть логику скриптов, может проще сделать можно. Добавлено (27 Ноябрь 2009, 12:38) --------------------------------------------- это еще не много, не должно так тормозить я думаю. чтото надо оптимизировать.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 13:07 | Сообщение # 12 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Вроде все сведено до минимума... На "Start" загружается: Code **Загрузка меню If (start=0) Then RunScript("main_menu_constructor") start=1 End **Загрузка изображения ReplaceImage("Bitmap","<SrcDir>\Data\fon.jpg") **Движение объекта по сторонам RunScript("Left") **Загрузка шрифта InstallFont("<Embedded>\Sam.ttf") На "Month" тож ничего особенного: Code If (start=0) Then RunScript("main_menu_constructor") start=1 End SongListLoad("<SrcDir>\Data\Color.dat","") RunScript("lang") **Загрузка текущего месяца a$ = '' + CBK_MonthNum LoadText("EB","a$") ** b$ = 'Month' + EB$ RunScript("b$") Единственное что я думаю может изменить "SongListLoad" на "StrFromFile"? Что бы плагин "SmallPlugin" которым я делал меню так грузил - врятли... Добавлено (27 Ноябрь 2009, 13:07) --------------------------------------------- Примерно гдето так: Object - 60 (+/- 5) Text - 85 (+/- 10) HotSpot - 42 EditBox - 84 Script - 64
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 14:02 | Сообщение # 13 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Mad-Dog) RunScript("main_menu_constructor") RunScript("lang") RunScript("Left") что внутри скриптов? попробуй последовательно проанализировать что происходит при загрузке, какие скрипты работают, что они делают и т.д., потом "отключать" каждый по очереди и смотреть не уменьшилось ли время загрузки. Так найдешь какой элемент тормозит сильнее всех и разберешься с ним. Quote (Mad-Dog) InstallFont("<Embedded>\Sam.ttf") может из-за шрифта? Quote (Mad-Dog) Примерно гдето так: Object - 60 (+/- 5) Text - 85 (+/- 10) HotSpot - 42 EditBox - 84 Script - 64 ето много конечно, но не на 11 же секунд тормозов..., были проекты и побольше, но не так же тормозило. суть не в обьектах, а логике скриптов. можно парой тупых строчек так подвесить машину... особенно если работает цикл.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 15:14 | Сообщение # 14 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, Шрифт тут не причем. К томуже свой шрифт я всегда использую в проэктах что бы избежать багов с текстом (вдруг у человека не будет такого шрифта). Не знаю как это так получилось, я до этого уже проверял на возможность торможения, но все же получается что это первоначальная анимация. Я прописал на начальной странице что бы загружалось изображение ReplaceImage("Bitmap","<SrcDir>\Data\fon.jpg") (широкое), и запуск скрипта Left который будет двигать его в левую сторону до конца и потом назад (и так бесконечно). Я убрал анимацию, сделал шрифт внешним InstallFont("<SrcDir>\Data\Sam.ttf") и получается так: Первый запуск приложения 3.7 секунд, остальные запуски 1.8 секунд. Я В ШОКЕ!!! Добавлено (27 Ноябрь 2009, 15:08) --------------------------------------------- Неужели анимашка тук грузила прогу Вот тебе и захотелось интерфейс улучшить, а о скорости не подумал и искал причину не там где надо. Но все же это хорошо. Зато я придумал как сжать 12 страниц в 1, тем самым убрав 2.5 Мб. Добавлено (27 Ноябрь 2009, 15:14) --------------------------------------------- Значить будем сново все проверять, уменьшать, и нормальную версию вылаживать Спасибо всем за помощ!
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 15:35 | Сообщение # 15 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Mad-Dog) Неужели анимашка тук грузила прогу да как сказать... надо глянуть что ты там наворотил в скрипте. да и фон не такой тяжелый, можно его и в проект впихнуть наверное. А анимашка прикольная )
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 15:55 | Сообщение # 16 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, Вот! Держи мою первую страничку. У мя грузится 7.3 секунды. http://mad-dog.wen.su/Upload.rar Добавлено (27 Ноябрь 2009, 15:55) --------------------------------------------- Хм! А знаеш... Если заменить в скрипте странице запуск скрипта Left на запуск его через 1-2 секунды то она быстро открывается... только на первом движении немного притормаживает.
Сообщение отредактировал Mad-Dog - Пятница, 27 Ноября 2009, 15:57 |
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 16:02 | Сообщение # 17 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, Вот оно! Наверное вот так будет в самый раз! А?
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 16:15 | Сообщение # 18 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| все равно чето немного долго, так не должно быть. попробую ченибудь придумать... неужели это из-за moveobject?
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 16:22 | Сообщение # 19 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| короче, я говорю ты чтото лишнего намутил. Зачем при старте скрипт Left1 ? чтобы двинуть картинку в начальные координаты 1,0 ? Зачем? достаточно внедрить картинку в проект, убрать скрипт Left1, убрать ReplaceImage при старте и все нормально. И зачем вообще надо было делать через ReplaceImage? Хочешь менять картинки в зависимости от времени года?
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 17:24 | Сообщение # 20 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, Code Зачем при старте скрипт Left1 ? чтобы двинуть картинку в начальные координаты 1,0 ? Зачем? Таким образом типа ускоряется запуск (тупо конешно...) Code Хочешь менять картинки в зависимости от времени года? Нет. Просто делал все возможное внешним. Времена года у меня меняются в самом календаре. Каждый месяц со своей картинкой. Ладно, я понял. Сделаем картинку внутренней.
|
|
| |
Sower | Дата: Пятница, 27 Ноября 2009, 17:24 | Сообщение # 21 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| Mad-Dog, если ты не перезаливал в пером посту файл, то у меня програ грузилась 6-7 секунд
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 17:27 | Сообщение # 22 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| если хочешь сразу переместить обьект в нужные координаты, то не пользуйся MoveTo - эта команда обрабатывает сам процесс движения, это намного дольше. Просто используй MoveObject с нужными координатами. Quote (Mad-Dog) Таким образом типа ускоряется запуск Таким образом, ты его только замедлил. Вообще, в старт проекта лучше не пихать замудреных скриптов, лучше их выполнить уже после начальной загрузки приложения. А скрипты из старта выполняются ПЕРЕД появлением главного окна проекта, в связи с чем их долгое выполнение может создать видимость жутких тормозов.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 17:31 | Сообщение # 23 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| ОК! Спасибо. Щас буду исправлять...
|
|
| |
DEMBEL | Дата: Пятница, 27 Ноября 2009, 17:37 | Сообщение # 24 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (DEMBEL) короче погоди, не торопись. Тут все дело в том, чтобы поскорее появилось главное окно программы (ведь его появление воспринимается как факт, что программа загрузилась, верно?), а после его появления продолжаем подгрузку остального барахла в фоновом режиме, незаметно. А так конечно, если перед стартом ждать пока все полностью прогрузится, будет заметно что долго. вот руководствуйся этим принципом и сделай так чтобы задержка перед появлением главного окна программы была минимальной.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Пятница, 27 Ноября 2009, 17:48 | Сообщение # 25 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| В прочем уже лучше 1.5 секунд.
|
|
| |