Уменьшение размера исполняемого файла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Уменьшение размера исполняемого файла

Сообщение Лекс Айрин » 28.10.2015 18:44:03

Снег Север, вы мне напомнили анекдот про программиста выбирающего между адом и раем "...это тут же, но будете заниматься техподдержкой" я сам лично видел как виста на современном тогда компе работала одна и, практически годилась только на запуск блокнота... потом ее, вроде бы, пофиксили... после того как ее продажи почему-то оказались почти на нуле. Но и потом я встречался с мелкими глюками типа труднонастраиваемого файфая и пр.. (причем с лицензионной осью). в семерке, все отладили и аппетит памяти уменьшился.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Уменьшение размера исполняемого файла

Сообщение Снег Север » 29.10.2015 08:44:15

Лекс Айрин, все проблемы, якобы, от ОС, с которыми я лично сталкивался, на самом деле были от глючного железа неизвестных производителей. И да, я редко менял ОС сразу после ее выхода, дожидался первых патчей. С Вистой у меня ни дома, ни на работе проблем не наблюдалось. Заметной на глаз разницы в объеме потребляемой памяти у Висты и у семерки, не заметил.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Уменьшение размера исполняемого файла

Сообщение Mikhail » 29.10.2015 09:44:34

Снег Север писал(а):на самом деле были от глючного железа неизвестных производителей


Чаще даже не железо, а драйверы. :(
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Уменьшение размера исполняемого файла

Сообщение Лекс Айрин » 29.10.2015 09:48:48

Снег Север, если оборудование работает (настраивается) нормально под семеркой и легким/тяжелым линуксом, но не работает в (настраивается) в висте... причем, после патчей и прочего, то это уже диагноз. А насчет потребления памяти... оно и будет примерно одинаковым. Но все же семерка работала чуть быстрее, за счет оптимизированного кода. Конечно, это заметно лишь после тщательной настройки компа, так как хлама везде полно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Уменьшение размера исполняемого файла

Сообщение SSerge » 29.10.2015 10:09:16

Лекс Айрин писал(а): если оборудование работает (настраивается) нормально под семеркой и легким/тяжелым линуксом, но не работает в (настраивается) в висте... причем, после патчей и прочего, то это уже диагноз


Диагноз чего?
Например, на висте в принципе не работает оборудование на процессорах Intel G20xx и подобным им (с тем же видеоадаптером). Обычные такие вполне современные процессоры, широко распространенные. Потому что в природе не существует драйвера видеокарты для Висты на графическое ядро этого процессора. Не, ну vesa driver - рулёз форевер... с разрешением 640х480 и без ускорения даже 2D...

С другой стороны, гомномашины на чипсете SiS 615(M). Как раз под висту на сей видеоадаптер драйвера еще есть, а семерка увидит весу без аппаратных ускорителей. Линуксы после ядер 2.6 - тоже. Из-за чего это все будет двигаться меееедленно и плохо.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Уменьшение размера исполняемого файла

Сообщение Лекс Айрин » 29.10.2015 10:30:21

SSerge, речь, допустим, идет о вполне себе типовых wi-fi "свистках" и их оснастке поставляемых в составе "сертифицированных" под висту ноутах. Из-за которых настройка соединения превращается в многоступенчатую головоломку. (при том, что в итоге все таки удается запустить, но смена пароля должна производиться в настройках соединения заранее, а не в процессе самого соединения)

А ведь, в принципе, ничего особо не мешало написать висту так, что бы она летала на тех же самых тачках. Просто написать ее чуть по другому.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Уменьшение размера исполняемого файла

Сообщение SSerge » 29.10.2015 10:57:47

Лекс Айрин
Ноуты, у которых изначально при продаже была виста на борту, обычно вполне нормально и быстро под нею работают. С поддержкой всего оборудования. Имеются в в виду всякие там HP, Dell и иже с ними, а не те, на которые софт ставил реселлер.

У висты принципиальная проблема с WiFi, и связан она с неподдержкой шифрования, если не устанлен один из сервис паков, то ли первый, то ли второй. Из за этого виста в базовом виде в принципе не коннектится с точками доступа по WPA2. А то коннектится, а трафик через соединение не идёт. То ж самое, кстати с XP без сервис паков.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Уменьшение размера исполняемого файла

Сообщение Лекс Айрин » 29.10.2015 11:03:50

SSerge, ужас... хорошо, что я этого не знал. Потому как, судя по всему, я сделал невозможное.

Добавлено спустя 2 минуты 7 секунд:
Если я правильно помню, то был то ли HP, то ли Dell.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Уменьшение размера исполняемого файла

Сообщение sunjob » 27.05.2024 15:34:56

Код: Выделить всё
- slackware 14.2 / x64
- lazarus-3.2.0 / fpc-3.2.2
- upx-3.94
- ucl-1.03
- bash-скрипт


использую "мануально" - в каталоге сборки проекта или добавляю вызов в скрипт сборки проекта (мануал, в ком.строке)
думаю, можно добавить в лазаря в пост-команду сборки проекта (в релизе)
проект (небольшая утилита, работа с TChart) - сжимает до 1.7Мб (дефолтные настройки upx)

Код: Выделить всё
#!/bin/sh
set -e; clear
SRC="$1"
DST="$2"

if [ -z "$SRC" -o -z "$DST" ]; then
echo "arg's error SRC='$SRC', DST='$DST'"
exit 1
fi

echo "### bin/compress ###
SRC = $SRC
DST = $DST
"
strip -v -s -o $SRC.tmp  $SRC
upx         -o $DST      $SRC.tmp
rm -fr                   $SRC.tmp
exit 0
Аватара пользователя
sunjob
постоялец
 
Сообщения: 156
Зарегистрирован: 12.01.2011 15:19:54

Re: Уменьшение размера исполняемого файла

Сообщение Alexander » 27.05.2024 17:15:28

Для всех делаю:
вместо strip sstrip, там где он срабатывает (обычный ELF файл).
1. sstrip exename (удалить отладочную информацию из исполняемого файла)
2. upx exename (сжать исполняемый файл)
3. sstrip exename (удалить отладочную информацию из upx-распаковщика исполняемого файла)

Для upx можно дать ключ --best для большей степени сжатия, но будет медленно.

Отработанные небольшие программы можно переписать для этого на Си или ассемблере.

Для Паскаля пока не реализовано, но если есть программы на другом языке может помочь (а может и помешать) mold. Выясняется экспериментально.
Но в основном помогает. Для маленьких экзешников размер с mold'ом может уменьшиться в 4 раза, для больших не так заметно.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru