Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Ускорить запуск приложения Добавлено: 19.04.05 18:09  

Автор вопроса:  Stef
Привет всем.
Может кто подскажет как ускорить запуск приложения, потому как после запуска приложения (после клика мышкой) до его старта (появление на экране) проходит около 30 секунд. Размер приложения 240кв
HEEEEELP.

Ответить

  Ответы Всего ответов: 15  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 19.04.05 19:24
1) Дополнительное время занимает именно первый запуск (в связи с JIT компиляцией)
2) Если при запуске выполняются инициализационные процедуры, ничего не поделаешь. Единственное, что я бы посоветовал - вынести эти операции в отдельный поток, ну и показать сплешь-форму, по крайней мере негативное впечатления от длительного запуска снизится, хотя скорости запуску это не добавит.
3) Выкинуть на свалку металолом и поставить нормальную машину.

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 19.04.05 19:24
Самый радикальный способ - купить новый (современный) комп, чтобы памяти побольше и процессор потолще.
Пустая .нет прога при запуске хапает 20 Мб памяти, а ты ещё наверняка всяких классов наподключал, что никак не уменьшает требований к памяти. Видимо твоей системе трудно выделить столько памяти для программы.

Ответить

Номер ответа: 3
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #3
Добавлено: 19.04.05 19:55
Может сделать доп. прогу с прогресс баром? Может хоть и не ускорит, но так или иначе если его сделать красивым то пользователю будет пофиг скока прога будет грузиться(не совсем конечно, но зоть как то)

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 20.04.05 00:00
1. Сменить разработку с .НЕТ на что-то более-менее найтивное...
2. предложить Splash-Screen чтобы было не так скучно. По исследованиям - очень помогает...

Ответить

Номер ответа: 5
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #5
Добавлено: 20.04.05 06:50
2cresta,
20 МБ она только резервирует, хотя реально использует не больше трех. И 20МБ будет соизмеряться с доступной памятью.

Ответить

Номер ответа: 6
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #6
Добавлено: 20.04.05 11:27

cresta
угу, только на самом деле это пустоты, сверни приложение и увидишь :)

Ответить

Номер ответа: 7
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #7
Добавлено: 20.04.05 11:33

Не буду столь голословным:
http://www.gotdotnet.ru/Forums/Windows/77935.aspx
http://www.gotdotnet.ru/DotNet/FAQ/CommonForum/524.aspx

Ответить

Номер ответа: 8
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #8 Добавлено: 20.04.05 16:26
freeloader
Ты ошибаешься. Почитай msdn. Platform SDK: Memory Management. О том, что такое резервированая память, выделенная память.

Пример, приведенный тобой, и ссылки к выделению памяти отношения не имеет. Это первый момент.
Программа и после сворачивания также держит эти 20 Мб. Это второй момент.

Хочешь, на мыло скину прогу. От того же Артема. Посворачиваешь, поразворачиваешь, посмотришь на распределение памяти.

Ответить

Номер ответа: 9
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #9
Добавлено: 20.04.05 16:48
Странно, я что то тогда понять не могу, что тогда получается, что все что там написано гольная ложь?

Ок, давай, в ответ я пришлю консоль, которая до применения АПИ в памяти 9 с лишним метров, а после 600 кб

Ответить

Номер ответа: 10
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #10
Добавлено: 20.04.05 16:51
Кстати в Release она вообще 4.5 отъедает.

Ответить

Номер ответа: 11
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #11 Добавлено: 20.04.05 18:08
Блин, я только вычистился от этого framework'a :( Не хочется опять загаживать комп.
Пример Артёма я те на мыло кинул. Там framework v2.0 нужен.

Не знаю, что там написано, ложь или нет, просто я вижу у себя такое. Может тут дело в версии framework'a ?

А про зарезервированную память - это совсем не то, что имеешь, когда сворачиваешь прогу. Пример:
Прога: (поиск файлов на винте) при запуске резервирую памяти 45 Мб(VirtualAlloc+MEM_RESERV). Из резервированного ничего не выделяется. В таскменеджере вижу распределение: для моей проги - 2,5 Мб. Далее запускаю поиск файлов - памяти пока нет, куда складывать список файлов - возникает ошибка обращения к недопустимому адресу(хотя этот кусок и зарезервирован). В обработчике этого исключения перевожу кусочек размером 4096 байт из состояния резервированного в состояние выделенного - и пишу теперь туда данные. И по мере роста кол-ва собранной информации постепенно перевожу в разряд выделенных новые кусочки по 4096 байт. Выделение памяти для проги в таскменеджере постепенно растет. К концу поиска выделяется примерно 16 Мб.
А затем, имея массив данных в 16 Мб, я сворачиваю прогу. Сколько выделения? 16 Мб, хотя менеджер показывает 240 кБ остается... Ведь мой массив никто не освободил. Разворачиваю прогу обратно - в менеджере 1,5 Мб. Данные не теряются, они где-то в неактивной части, может в файле подкачки. Начинаю тягать скролбар листа, прокручивая список - тут память резко нарастает до тех 16 Мб. Такой механизм. А в случае с .net эта цифра стоит колом на отметке 20 Мб в любом раскладе:(
При том, что она простейшая, всего нарисовать круг, да залить форму градиентом.
Выделенная - это одно, зарезервированная - совсем другое, а при сворачивании - это вообще отдельная песня.
У меня тот пример, что кинул тебе, запускается (если процессов мало) 5-6 сек. Если открыто много приложений и памяти дефицит, то запуск растягивается на 10 сек. Нужно время, чтобы найти и освободить для вновь запускаемого приложения 20 Мб.

Ответить

Номер ответа: 12
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #12
Добавлено: 21.04.05 16:23

2cresta
Программа запускается за 2 секунды.
В таскмендежер после прорисовки круга занимает 15881 кб, после сворачивания 876 кб.
Cel 2.6 GHz, 512 MBRam - с памятью как видишь проблем вообще никаких :)
Ту тенденцию которую написал(заметил) ты, заметил и я, если уже посмотрел консольное приложение, при появлении новой строки память возврастает на 24 КБ а то и больше.
А вообще для современных машин я не считаю, что это большая проблема... Например у всего моего дружеского окружения стоят процы не ниже 2GHz и 256 мб ОЗУ



Может тут дело в версии framework'a ?

мне так не кажется... хотя может и в нем дело.

Ответить

Номер ответа: 13
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #13
Добавлено: 21.04.05 16:39

Кстати cresta интерестно почему же такая технология ни как не проходит на VB и VC++???
{http://www.webfile.ru/269374}

Ответить

Номер ответа: 14
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #14
Добавлено: 21.04.05 17:18

А вообще для современных машин я не считаю, что это большая проблема.


Во многих организациях до сих пор работают на 486 DX33. Например в нашей.

PS
Организация не самая бедная. Далеко не самая.

Ответить

Номер ответа: 15
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #15 Добавлено: 21.04.05 17:34
freeloader, сворачивание окна в данном топике вообще не к месту. При запуске проге выделяется память в живом озу. Если свободного озу мало - начинается "выпихивание" остальных прог из озу. Их память (как неактивных на данный момент) перемещается в файл подкачки. На это и нужно время. В случае автора вопроса - 30 сек.
Чем меньше свободного озу и чем больше нужно для вновь запускаемой, тем больше приложений надо пнуть в файл подкачки. Вот и всё объяснение этим 30 секундам.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам