Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Ускорить запуск приложения
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
Ну не знаю... Но когда проэкт загружен и мы создаем объекты то они создаются мгновенно. Но все же я думаю что мне можно попробовать сделать скрипты внешними, поскольку там дофига скриптов, да и обектов хватает... :D
Прикрепления: 9934932.png (63.3 Kb)


 
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
Вроде все сведено до минимума... scratch
На "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"? scratch
Что бы плагин "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 секунд.
Я В ШОКЕ!!! scared scared scared

Добавлено (27 Ноябрь 2009, 15:08)
---------------------------------------------
Неужели анимашка тук грузила прогу scared scared scared
Вот тебе и захотелось интерфейс улучшить, а о скорости не подумал и искал причину не там где надо. Но все же это хорошо. Зато я придумал как сжать 12 страниц в 1, тем самым убрав 2.5 Мб. :D

Добавлено (27 Ноябрь 2009, 15:14)
---------------------------------------------
Значить будем сново все проверять, уменьшать, и нормальную версию вылаживать :D
Спасибо всем за помощ! bravo dance yahoo thumbs_up


 
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 секунды то она быстро открывается... scratch только на первом движении немного притормаживает.




Сообщение отредактировал Mad-Dog - Пятница, 27 Ноября 2009, 15:57
 
Sam726Дата: Пятница, 27 Ноября 2009, 16:02 | Сообщение # 17
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
DEMBEL, Вот оно! Наверное вот так будет в самый раз! А?
Прикрепления: test.rar (15.3 Kb)


 
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? Хочешь менять картинки в зависимости от времени года?
Прикрепления: test1.zip (109.7 Kb)




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 ? Зачем?

Таким образом типа ускоряется запуск :D (тупо конешно...)
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 секунд.

 
  • Страница 1 из 1
  • 1
Поиск: