Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.07.2018, 06:45
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию Оптимизация программ. Настройка среды

Приветствую.

Такой вопрос интересует.
Как уменьшить "вес" программы?

Компилю в режиме 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  
Старый 27.07.2018, 20:06
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,310
Версия Delphi: 7, XE3, 10.2
Репутация: 49087
По умолчанию

1. Нет, нельзя. К сожалению, это тенденция последних лет. Код (исполняемый) и библиотеки растут в размерах. Плюс плата за многоязыковость/многоплатформенность. На ДотНет не надо кивать, там просто все библиотеки среды исполнения лежат отдельно. Можно и в Дельфи собрать проект с пакетами, но их все равно надо будет тащить, а ДотНет МС сама доставляет клиенту.
2. Удалить их из uses, потом сохранить модуль. Работает только для модулей компонентов. Если что подключал "руками", то оно не восстановится.
3. Не влияют от слова совсем. На то они и комментарии. Компилятор их просто пропускает
4. Есть пакеры времени исполнения, типа ASPack, UPX и т.д.

А вообще, нынче размер бинарников, особенно под виндой, да и на других системах, никого не волнует, благо они напрямую целиком не грузятся в память. вот у меня есть проект на D10.2, бинарник релиза - 3.5 метра. дебага - под 20 метров (там еще 2 dll метра на 1.5 до кучи рядом, так что размер кода больше). А в памяти оба занимают одинаково - 3.6 метра. Ну и подобное приложение на Д7 с бинарником за 2 метра (там больше левых библиотек) в памяти занимает под те же 2 метра. Разница не так велика как кажется глядя на бинарники...
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо lmikle за это полезное сообщение:
Admin (27.07.2018), Kailon (28.07.2018), TEKTON (28.07.2018)
  #3  
Старый 28.07.2018, 02:34
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию

А что насчёт среды?
Какая из последних самая стабильная, удобная безглючная? (под 32битсистему)
Моя DXE3 последнее время грузит не по детски.
Постоянно окно обновляется в среде.
Временами появляются какие то хинты с надписью "parsing..."
При компеляции очень часто ошибка из за того что типо занят файл ещё.
А через какое то время всё ок становится.
Короче какая то мистика с ней.

Последний раз редактировалось TEKTON, 28.07.2018 в 02:38.
Ответить с цитированием
  #4  
Старый 28.07.2018, 08:32
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,310
Версия Delphi: 7, XE3, 10.2
Репутация: 49087
По умолчанию

Ну не знаю, у меня xe3 вроде ведет себя нормально, но я в ней не много сижу. Последнее время пользую 10.2.3 Tokyo Starter (благо он бесплатный). Пока особых нареканий нет.
Ответить с цитированием
  #5  
Старый 28.07.2018, 10:24
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Последнее время пользую 10.2.3 Tokyo Starter (благо он бесплатный). Пока особых нареканий нет.
Спасиб.
А это не тот который в "шапке" тем и спметкой " Важно" ? 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  
Старый 28.07.2018, 22:55
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,310
Версия Delphi: 7, XE3, 10.2
Репутация: 49087
По умолчанию

Нет, это не тот. Это была бесплатная версия как-то уже, но с дикими ограничениями. Сейчас есть 2 варианта прямо с оф сайта абракадабры:
1. Starter. Там много чего нет, типа БД серьёзных, но для большинства персональных проектов более чем достаточно. Но в ней только Win32 компилятор. Если хочется Win64/MacOS/iOS/Android, то см. п. 2.
2. Comunity Edition. Это фактически Professional, но ключ дается на год + некоторые другие ограничения, в основном административного характера. Ну и CE лицензию переписывает на свою, так что все другие версии могут отвалиться.
Идешь на абракадабру, качаешь, ставишь. На сайте регистрируешься и получаешь ключ по почте (CE не проверял, а со стартером так у меня было).

Portable - это уже чъе-то творение персоналное. Так что официально такой версии нет.
Ответить с цитированием
  #7  
Старый 30.07.2018, 16:21
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 298
Репутация: -1806
По умолчанию

для вин32 нет никакого смысла заходить дальше делфи 2009, заодно там привыкнешь к уникоду с дженериками, иначе и 2007й за глаза

для делфи 2010 и выше в код проекта добавлять
Код:
{$WEAKLINKRTTI ON}  
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
если хочется еще меньше

зы ну а так то для размера всегда был и есть КОЛ
Ответить с цитированием
  #8  
Старый 10.12.2018, 22:42
slaidouh77 slaidouh77 вне форума
Прохожий
 
Регистрация: 10.12.2018
Сообщения: 2
Версия Delphi: 10.3 CE
Репутация: 10
По умолчанию

Код:
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}
// ***************************************************************************
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter