|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Оптимизация программ. Настройка среды
Приветствую.
Такой вопрос интересует. Как уменьшить "вес" программы? Компилю в режиме Release, Debug сразу отключил. Но всё равно файл получается большим. Раньше на Delpi 7 был, сейчас пересел на Delpi XE3, Но чёт она мне не нравится. Лаги в ней какие то... Какие то постоянные обновления (прогрузки) интерфейса... Да и размер файла по сравнению с D7 очень отличается. Посоветуйте какая версия самая "нормальная". У меня Винда 7 32bit. Может есть у кого нормальная сборочка ? И где можно скачать её. А то среда которая сейчас стоит, пихает кучу всякой ненужной, бесполезной хрени в exe*шник. Хотя, делфа всегда этим "страдала", но сейчас глядя на размер файла, понимаю что сейчас вообще какой то перебор. Вот например: Точечные рисунки Всякие пиктограммки, которые вообще никогда у меня не используются. Строковая таблица С таким содержимым: (Ну конечно сильно сокращено) Код:
..... ...... 65284 OK 65285 Cancel 65286 &Yes 65287 &No 65288 &Help 65289 &Close 65290 &Ignore 65291 &Retry 65292 Abort 65293 &All 65294 Cannot drag a form ......... 65439 Can't write to a read-only resource stream 65440 July 65441 August 65442 September 65443 October 65444 November 65445 December 65446 Sun 65447 Mon 65448 Tue 65449 Wed 65450 Thu 65451 Fri 65452 Sat 65453 Sunday 65454 Monday 65455 Tuesday 65456 Mar 65457 Apr 65458 May 65459 Jun 65460 Jul 65461 Aug 65462 Sep 65463 Oct 65464 Nov 65465 Dec 65466 January 65467 February 65468 March 65469 April 65470 May 65471 June Курсоры Которые тоже вообще не используются. Ну и конечно в Uses лишние модули отключить .... Вопрос: 1) Можно ли как то настроить среду, что б эту хрень исключить из файла, или это вообще "не лечится" ? 2) Как узнать, какие модули в Uses нужны программе, а которые впихиваются "шоб було". 3) Влияют ли на вес комментарии в коде ? Или они не попадают в конечный exe ? 4) Может есть какие "ребилдоры", которые коцают всё лишнее и оптимизируют программу? 5) Может есть тутор какой по настройке этого барахла ? З.Ы. А что нет тега [spoiler] [/spoiler] На форуме ? Последний раз редактировалось Admin, 27.07.2018 в 20:36. |
#2
|
|||
|
|||
1. Нет, нельзя. К сожалению, это тенденция последних лет. Код (исполняемый) и библиотеки растут в размерах. Плюс плата за многоязыковость/многоплатформенность. На ДотНет не надо кивать, там просто все библиотеки среды исполнения лежат отдельно. Можно и в Дельфи собрать проект с пакетами, но их все равно надо будет тащить, а ДотНет МС сама доставляет клиенту.
2. Удалить их из uses, потом сохранить модуль. Работает только для модулей компонентов. Если что подключал "руками", то оно не восстановится. 3. Не влияют от слова совсем. На то они и комментарии. Компилятор их просто пропускает 4. Есть пакеры времени исполнения, типа ASPack, UPX и т.д. А вообще, нынче размер бинарников, особенно под виндой, да и на других системах, никого не волнует, благо они напрямую целиком не грузятся в память. вот у меня есть проект на D10.2, бинарник релиза - 3.5 метра. дебага - под 20 метров (там еще 2 dll метра на 1.5 до кучи рядом, так что размер кода больше). А в памяти оба занимают одинаково - 3.6 метра. Ну и подобное приложение на Д7 с бинарником за 2 метра (там больше левых библиотек) в памяти занимает под те же 2 метра. Разница не так велика как кажется глядя на бинарники... |
#3
|
|||
|
|||
А что насчёт среды?
Какая из последних самая стабильная, удобная безглючная? (под 32битсистему) Моя DXE3 последнее время грузит не по детски. Постоянно окно обновляется в среде. Временами появляются какие то хинты с надписью "parsing..." При компеляции очень часто ошибка из за того что типо занят файл ещё. А через какое то время всё ок становится. Короче какая то мистика с ней. Последний раз редактировалось TEKTON, 28.07.2018 в 02:38. |
#4
|
|||
|
|||
Ну не знаю, у меня xe3 вроде ведет себя нормально, но я в ней не много сижу. Последнее время пользую 10.2.3 Tokyo Starter (благо он бесплатный). Пока особых нареканий нет.
|
#5
|
|||
|
|||
Цитата:
А это не тот который в "шапке" тем и спметкой " Важно" ? http://www.delphisources.ru/forum/showthread.php?t=8641 Ещё гугл мне сказал что тут есть http://www.cyberforum.ru/delphi/thread1798191.html Это одно и то же? Откуда этот 10.2.3 Tokyo Starter можно "стянуть" ? Может есть вообще типа облегчённой Portable версии XE? Последний раз редактировалось TEKTON, 28.07.2018 в 11:26. |
#6
|
|||
|
|||
Нет, это не тот. Это была бесплатная версия как-то уже, но с дикими ограничениями. Сейчас есть 2 варианта прямо с оф сайта абракадабры:
1. Starter. Там много чего нет, типа БД серьёзных, но для большинства персональных проектов более чем достаточно. Но в ней только Win32 компилятор. Если хочется Win64/MacOS/iOS/Android, то см. п. 2. 2. Comunity Edition. Это фактически Professional, но ключ дается на год + некоторые другие ограничения, в основном административного характера. Ну и CE лицензию переписывает на свою, так что все другие версии могут отвалиться. Идешь на абракадабру, качаешь, ставишь. На сайте регистрируешься и получаешь ключ по почте (CE не проверял, а со стартером так у меня было). Portable - это уже чъе-то творение персоналное. Так что официально такой версии нет. |
#7
|
|||
|
|||
для вин32 нет никакого смысла заходить дальше делфи 2009, заодно там привыкнешь к уникоду с дженериками, иначе и 2007й за глаза
для делфи 2010 и выше в код проекта добавлять Код:
{$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} зы ну а так то для размера всегда был и есть КОЛ |
#8
|
|||
|
|||
Код:
program MyProgram; {$IFNDEF DEBUG} {$WEAKLINKRTTI ON} // если вам не нужны новые возможности RTTI! {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} // если вам не нужны новые возможности RTTI! {$ENDIF} uses WinApi.Windows, Vcl.Forms, .....; // *********************** Уменьшаем размер экзэшника ************************* {$IFNDEF DEBUG} {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED} // Удаление из exe таблицы релокаций. {$SETPEFLAGS IMAGE_FILE_DEBUG_STRIPPED} // Удаление из ехе Debug информации {$SETPEFLAGS IMAGE_FILE_LINE_NUMS_STRIPPED} // Удаление из exe информации о номерах строк {$SETPEFLAGS IMAGE_FILE_LOCAL_SYMS_STRIPPED} // Удаление local symbols {$SETPEFLAGS IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP} // При запуске exe с компакта, флэшки, других извлекаемых устройств, считать exe в свап и запустить оттуда. Полезно, если нужно запустить программу с компакта, а потом попросить вставить другой... {$SETPEFLAGS IMAGE_FILE_NET_RUN_FROM_SWAP} // Аналогично предыдущей, только для сетевых дисков {$SETPEFLAGS IMAGE_FILE_AGGRESIVE_WS_TRIM} // Сообщаем ОС, что приложение умеет работать с памятью более 2 Гб {$SETPEFLAGS IMAGE_FILE_EXECUTABLE_IMAGE} // Файл представляет собой исполняемый файл {$ENDIF} // *************************************************************************** |