Раздел: Как стать программистом / Секреты программирования /

Как уменьшить размер программы в FreePascal

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее...

Возможно, кто-то опять будет ругать меня за эту статью. Мол зачем рассказывать о старье, когда есть новые средства разработки.

Ну, во-первых, FreePascal до сих пор развивается. А во-вторых, когда работаешь программистом много лет, то программирование по большей части превращается в рутину. И чтобы как-то отвлечься от этой рутины, я либо изучаю что-то новое (даже если мне это не требуется в работе), либо погружаюсь в старое, чтобы окунуться в свою программистскую юность. Иногда из этого получаются статьи, подобные этой, которыми я делюсь со своими читателями. Ну а если кому не нравится, то можно просто не читать и не смотреть.

А теперь к сути. Некоторое время назад я рассказывал о том, как уменьшить размер ЕХЕ-файла, создаваемого в Lazarus. Там же я рассказал о причинах, по которым исполняемый файл программы имеет большой размер. Но, как известно, Lazarus - это проект FreePascal, из чего можно предположить, что и программы, создаваемые в FreePascal, также имеют слишком большой размер.

Ну на самом деле это не совсем так. Программы, созданные в среде разработки FreePascal имеют не такой большой размер, потому что в основном в этой среде создаются консольные приложения. Однако отладочная информация в FreePascal по умолчанию также “впихивается” в ЕХЕ-файл, что хоть немного, но всё-таки увеличивает его размер.

И, так же как и в Lazarus, в FreePascal можно запретить генерацию отладочной информации, что немного уменьшит размер исполняемого файла. Сделать это можно (также как и в Lazarus) через настройки отладчика.

Это делается через меню: OPTIONS - DEBUGGER. В открывшемся окне с помощью мыши или клавиш со стрелками вверх/вниз выбираем “Scip debug information generation” и/или “Strip all debug symbols from executable”.

Как уменьшить размер программы в FreePascal

Затем щёлкаем кнопку ОК. Также не забываем сохранить настройки: OPTIONS - SAVE.

Затем надо пересобрать проект и вы увидите, что размер исполняемого файла стал меньше (в моём примере примерно 82 КБ против 138 КБ).

Если вы выбрали “Scip debug information generation” И “Strip all debug symbols from executable”, то размер исполняемого файла по сравнению с выбором “Generate also backtrace line information” будет меньше примерно в два раза (зависит от размера вашей программы).

Также можно для отключения отладочной информации использовать директиву {$D-}. Однако настройки среды имеют приоритет перед директивами, поэтому, если вы используете среду FreePascal, то директива {$D-} работать не будет. Применять её имеет смысл только в том случае, если вы пишите свои программы в другом текстовом редакторе, а компилируете их компилятором FreePascal, запуская его из командной строки.


Первые шаги в программирование Первые шаги в программирование

Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, что такое программирование. И вы даже напишите свою первую программу. Для тех, кто интересуется программированием, но ещё не знает, что это такое, и не пробовал создавать программы (или пробовал, но не получилось). Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика