С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
Джоуи
1082 / 644 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
1

Как уменьшить размер исполняемого файла?

29.03.2016, 11:49. Показов 3839. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я не про strip, UPX, галочки генерировать отладочную инфу, умная компоновка и т.д.
Я про использование ненужных модулей, типа Dialogs, если я не вызываю никакого MessageDLG и т.п.
Так вот, новый проект по умолчанию подключает
Delphi
1
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs
От каких можно избавиться в стандартных случаях?

Не по теме:

просьба не ругаться на банальность вопроса

0
Лучшие ответы (1)
Programming
Эксперт
9485 / 562 / 19
Регистрация: 12.04.2006
Сообщений: 11,671
Блог
29.03.2016, 11:49
Ответы с готовыми решениями:

Как уменьшить размер исполнимого файла?
Всем привет.. поставил на днях Zalarus на Ubuntu 10.10. и при компиляции пустого проекта у меня...

Как уменьшить размер exe-файла?
Создал элементарную программку на lazarus. Прога -- только одна форма и одна кнопка, а exe весит 14...

Как уменьшить размер приложения для КПК
Добрый день! Решил посмотреть, как программируется для КПК. Поставил себе Lazarus 0.9.30. Все...

Как уменьшить размер Lazarus.exe после установки компонентов?
Здравствуйте! После установки компонентов lazarus.exe весит около 200 мб. Есть ли какая нибудь...

12
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33003 / 21306 / 8183
Регистрация: 22.10.2011
Сообщений: 36,609
Записей в блоге: 8
29.03.2016, 12:43 2
Лучший ответ Сообщение было отмечено Joey как решение

Решение

Цитата Сообщение от Joey Посмотреть сообщение
Я про использование ненужных модулей, типа Dialogs, если я не вызываю никакого MessageDLG
Зато ты наверняка вызываешь ShowMessage, которая тоже оттуда же. Вообще, при установке галочки в Настройки проекта - Параметры компилятора - Подробность вывода - Подсказки о неиспользуемых модулях, тебе компилятор сам скажет, какие из подключенных модулей действительно не используются. Их можешь смело удалять из списка Uses.

Или правый клик мыши в окне редактора -> Переработка кода -> Неиспользуемые модули

Но это ничего не даст, если содержимое модуля не используется - оно и в exe-файл добавлено не будет. Так, чисто эстетически только помогает.
1
Джоуи
1082 / 644 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
29.03.2016, 13:01  [ТС] 3
Убрал из uses все, кроме Forms и StdCtrls, поставил на форму один TButton, и все равно exe-шник весит 1,83 мб (столько же, сколько и со всеми модулями + еще одной формой)

Добавлено через 50 секунд
Цитата Сообщение от volvo Посмотреть сообщение
если содержимое модуля не используется - оно и в exe-файл добавлено не будет
Не знал, спасибо!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33003 / 21306 / 8183
Регистрация: 22.10.2011
Сообщений: 36,609
Записей в блоге: 8
29.03.2016, 13:05 4
Цитата Сообщение от Joey Посмотреть сообщение
Не знал
Про
Цитата Сообщение от Joey Посмотреть сообщение
умная компоновка
же знал? А в чем интересно, она заключается, эта умная компоновка?
0
Joey
29.03.2016, 13:08  [ТС]
  #5

Не по теме:

Цитата Сообщение от volvo Посмотреть сообщение
А в чем интересно, она заключается, эта умная компоновка
А черт его знает))

0
442 / 371 / 132
Регистрация: 09.09.2011
Сообщений: 1,339
29.03.2016, 22:59 6
насколько я себе представляю, радикально уменьшить размер исполняемого файла графического приложения LCL не получится. Минимальное приложение будет примерно 1.7 - 1.8 Мб.

Уменьшить можно:
1. отказавшись от GUI LCL - в пользу интерфейса командной строки
2. вместо LCL - делать GUI на чистом WinApi
3. вместо LCL - делать GUI на fpGUI (например)
4. попробовать KOL, но насколько я понял оно заброшено и имеет много ограничений

в любом случае, кроме 1-го варианта, трудоемкость создания приложения повыситься кратно. стоит ли оно мегабайта на терабйтном винчестере??? спорное решение...
1
Джоуи
1082 / 644 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
01.04.2016, 15:03  [ТС] 7
Kitayets, ага, я вконец отказался от идеи. Пойдет как есть, пара мегабайт - не конец света. хоть и неприятно
0
пофигист широкого профиля
4754 / 3191 / 860
Регистрация: 15.07.2013
Сообщений: 18,482
02.04.2016, 01:22 8
Цитата Сообщение от Joey Посмотреть сообщение
хоть и неприятно
Кому неприятно? Тебе? Так ты посмотри на размер программ, которые установлены на твоём компьютере.
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 6
02.04.2016, 16:01 9
на официальном форуме есть отдельная ветка, посвященная библиотеке LLCL (что-то похожее на KOL), использовать крайне просто.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33003 / 21306 / 8183
Регистрация: 22.10.2011
Сообщений: 36,609
Записей в блоге: 8
02.04.2016, 16:41 10
Из описания LLCL:
It's an emulation of a small subset of the standard LCL/VCL, for only the most basic controls and classes, with their most common properties, methods and events
То есть, в любую секунду можно столкнуться с тем, что кто-то (чтобы сэкономить меньше 2МБ дискового пространства) посчитал то свойство/метод, которое тебе вдруг понадобилось, недостаточно распространенным и часто используемым, чтобы включить его в LLCL. И Что? Опять велосипедостроение, или послать LLCL лесом, и начинать заново разработку на LCL/VCL, и не зависеть от чьего-то хотения, а пользоваться всей мощью этих библиотек? Даже не начиная использовать LLCL я выбираю второй вариант (ибо у кнопки есть не только свойство Caption и метод OnClick, а у StringGrid-а есть десятки методов и свойств, которые я довольно активно использую, но использование их другими встречаю очень редко. Про TThread без Synchronize я вообще ничего говорить не хочу)
1
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,193
02.04.2016, 20:25 11
Joey, 2-4 МБ - это вполне приемлемо. Вы сравните с Qt, там ради одной кнопки не менее 20 МБ приходится передавать либо в составе exe-шника, либо, что ещё хуже, в качестве отдельных dll-ок. А C#, который предполагает, что у вас должен быть установлен соответствующий Framework, да даже простейшие программы, написанные на VC++, без установки дополнений запускаться не будут. Время DOS-овских программ (20-200 КБ) прошло, так что придётся мириться...
К стати, я тоже не понимаю и не оправдываю, почему программа, написанная в С++Builder-6 или Delphi-6, имеющая в своём составе и графику, и БД "весила" не больше 1 МБ. Сейчас форма с кнопкой "весит" раза в полтора больше... У меня много "и других почему...". Например, почему цена нефти упала, а цена на бензин выросла...
А пока, уважаемый Joey, порекомендовал бы вам использовать UPX, вот один из наиболее свежих и бесплатных:
Вложения
Тип файла: rar EXE Packer.rar (738.4 Кб, 13 просмотров)
0
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,193
02.04.2016, 20:34 12
Цитата Сообщение от northener Посмотреть сообщение
Так ты посмотри на размер программ, которые установлены на твоём компьютере.
А вы считаете это нормальным? А если завтра появятся компы с десятками теробайт ОЗУ и с винтом более тысячи теробайт, то можно будет и "вес окна с кнопкой" делать гига так под два? Такое впечатление, что разработчикам компиляторов, как и авторам многих современных книг, стали платить не за содержание и качество, а за объём...
0
Джоуи
1082 / 644 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
04.04.2016, 21:54  [ТС] 13
Цитата Сообщение от shyub Посмотреть сообщение
C#, который предполагает, что у вас должен быть установлен соответствующий Framework
Критиковать C# не могу, но завязка на фреймворк раздражает, напоминает Embrace, extend and extinguish)

Добавлено через 1 минуту
Цитата Сообщение от shyub Посмотреть сообщение
почему цена нефти упала, а цена на бензин выросла
Тайнейшая тайна для меня тоже))

Добавлено через 18 минут
Цитата Сообщение от shyub Посмотреть сообщение
порекомендовал бы вам использовать UPX
Суть не в том, чтобы сжать большую прогу, а чтобы небольшая прога с маленьким функционалом весила соответственно. Плюс еще:
Цитата Сообщение от shyub Посмотреть сообщение
А вы считаете это нормальным?
Да. Послушай volvo
Цитата Сообщение от volvo Посмотреть сообщение
не зависеть от чьего-то хотения, а пользоваться всей мощью этих библиотек
Действительно, зачем отказываться от чего-то, что с трудом создали многие программисты, при чем абсолютно безвозмездно, открыто (я про LCL)

Добавлено через 2 минуты
так что я услышал ответ на свой вопрос - "2 Мб должно хватить всем"))
0
04.04.2016, 21:54
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
04.04.2016, 21:54
Помогаю со студенческими работами здесь

Как уменьшить размер исполняемого файла, созданного в Delphi 7 (как использовать KOL)
Здравствуйте! Подскажите, пожалуйста, как уменьшить размер исполняемого файла, созданного в Delphi...

Где отключить Debug чтобы уменьшить размер исполняемого файла
Из-за отладочной информации файл весит аж 7мб (и это пустая форма), и создается в win32/debug. ...

Как уменьшить размер exe-файла?
Exe весит 10 мб. , не могу понять почему. Сначала думал что фоновые картинки и кнопки ( кнопками...

Как уменьшить размер EXE файла?
Люди, подскажите, пожалуйста, что можно отключить, чтобы скомпилённый экзешник стал немного...

Почему размер исполняемого файла в Delphi XE2 меняется при каждом билде
Здравствуйте. Подскажите, почему размер исполняемого файла в Delphi XE2 меняется при каждом билде и...

Уменьшить размер кода (считывание с ini файла)
Вот получился у меня такой говно-код, подскажите, каким образом его можно сократить: if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Блоги программистов
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­хронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru