Середа, 01.05.2024, 12:12
Ми Вас вилікуємо, Гість | Записатись на прийом | Вхід

Мой сайт

Каталог статей

Головна » Статті » Технології » 10 клас

Lazarus: зменшуємо розмір виконуваного EXE-файлу

LAZARUS: зменшуємо розмір виконуваного EXE-файлу

Якщо ви довго працюєте з Lazarus, то напевно вже помітили, що розміри створюваного EXE-файлу програми достатньо великі (4-14 мБайт), хоча за функціональністю програми досить прості. Аналогічні програми, набагато складніші за функціональністю, які ми часто бачимо в Інтернеті, мають значно менші розміри (від кількох сотень кілобайт до 1-2 мегабайт). Чи можна якимось чином зменшити розміри створеної нами програми? Звісно, так.

Скористаємось порадами, знайденими тут: http://grafika.me/node/53

Насамперед, пропонується ПЕРЕД КОМПІЛЯЦІЄЮ ПРОГРАМИ (перед її запуском) внести певні зміни в налаштування компілятора (нагадаємо, компілятором є програма, яка на основі розробленого нами проекту створює виконуваний файл з розширенням EXE). Для цього в меню середовища Lazarus відкриємо Параметри проекту:

Тепер перейдемо в розділі Параметри компілятора на вкладку Compilation and Linking і виставимо вказані прапорці (Розумна компіляція і Розумне компонування): 

Після цього відкриємо вкладку Налагоджувальні дані і виставимо такі прапорці:

Залишилось натиснути кнопку Гаразд для затвердження внесених змін.

Після таких налаштувань отриманий в результаті компіляції EXE-файл буде справді меншим у кілька разів (наприклад, у нас він зменшився від 14 до 2 мБ). 

Крім того, можна додатково видалити відлагоджувальну інформацію з виконуваного файлу (використавши програму strip.exe) та переупакувати файл (програмою upx.exe). Програми попередньо потрібно розмістити у одній папці з проектом, взяти їх можна ТУТ. Втім, чи потрібно це робити - вирішувати вам.

Не забудьте, що у створеному Lazarus EXE-файлі розміщуються не тільки машинні коди, але й графічні зображення (а також, можливо, й аудіофайли, які ви можете сюди упакувати). Звісно, розмір EXE-файлу напряму залежить від розміру вставлених об'єктів. Проіллюструємо це простим прикладом.

Створимо просту програму з розміщеного на формі зображення (444*333 пікселі) :

НЕ ВСТАВЛЯЮЧИ у порожню рамку Image зображення, відкомпілюємо проект (з наведеними вище налаштуваннями) і отримаємо EXE-файл об'ємом 1833 кБ:

До речі, звернемо увагу, що після компіляції у папці проекту з'явився файл з розширенням DBG з налагоджувальною інформацією розміром 12832 кБ (приблизно 13 мБ) - це результат оптимізаційних налаштувань (розширення DBG - скорочення від англійського debugging, налагоджування). 

Завантажимо тепер у компонент Image фотографію розміром 5,6 мБ у форматі BMP розмірами 1600*1200 (ми спеціально взяли нестиснуте растрове зображення, щоб краще продемонструвати збільшення розміру виконуваного файлу). Звісно, використаємо властивість Stretch=true, щоб фото вписалось у рамку.

Після компіляції проекту отримаємо EXE-файл об'ємом 7458 кБ, тобто об'єм файлу зріс рівно на об'єм вставленого BMP-зображення:

  Перевіримо тепер, чи впливають на розмір EXE-файлу наші попередні оптимізаційні налаштування. Знімемо (вимкнемо) в налаштуваннях проекту (як було сказано раніше) лише один прапорець: Використовувати зовнішній файл DBG. Тепер знову перекомпілюємо вже готовий проект, нічого у ньому не змінюючи, і (ОГО!) отримаємо розмір EXE-файлу 20288 кБ (тепер до EXE-файлу додалась і налагоджувальна інформація з DBG-файлу).

Замінимо тепер зображення BMP таким же, але стиснутим JPG-зображенням (не змінюючи розміри 1600*1200 пікселів), виставимо попередні оптимізаційні налаштування і знову перекомпілюємо проект; в результаті отримаємо EXE-файл об'ємом лише 2189 кБ:

Як бачимо, лише заміна формату зображення BMP на JPG дала зменшення розміру виконуваного файлу на 5 мБ. 

Якщо ж ми тепер згадаємо, що ми вписуємо у рамку розміром 444*333 пікселі зображення розміром 1600*1200 пікселів, то зрозуміємо, що повної оптимізації можна досягнути, ЗМЕНШИВШИ РОЗМІРИ ЗОБРАЖЕННЯ ВІДПОВІДНО ДО РОЗМІРІВ РАМКИ. Зменшимо нашу фотографію до розмірів 444*333 і завантажимо це зображення в Image. Візуально це не приведе до яких-небудь змін:

Однак після компіляції переконаємось, що розмір EXE-файлу став ще меншим (1875 кБ):

Зі всього сказаного можна зробити такі висновки: щоб розмір вашого EXE-файлу був якомога меншим, правильно налаштуйте середовище Lazarus і вставляйте в компоненти Image зображення, які відповідають розмірам цього компоненту.

Категорія: 10 клас | Додав: nam-kapec (19.04.2015)
Переглядів: 1812 | Рейтинг: 0.0/0
Всього коментарів: 0
dth="100%" cellspacing="1" cellpadding="2" class="commTable">
Псевдо *: Email:
Код *:
RSS

Категорії разділу

10 клас [30]
Тільки Українське радіо-онлайн



Пошук

Книга подяк

300

Статистика


Зараз онлайн: 1
Ще хворих: 1
Наших пацієнтів: 0

Форма входу

Радимо відвідати

  • Склепати сайт
  • Наші пацієнти
  • Вам, веб-ломайстри
  • Програми для всіх
  • Хворим на голову