Какие программы используют для уменьшения объема файлов программы компиляторы

Результаты в табличке показаны относительно “-Os”. Меньший результат говорит о меньшем размере кода. “-m32, -mfpmath=sse, -march=atom” включены по-умолчанию во всех случаях.

  • «-Ofast» аналогично «-O3 -ffast-math» включает более высокий уровень оптимизаций и более агрессивные оптимизации для арифметических вычислений (например, вещественную реассоциацию)
  • «-flto» межмодульные оптимизации
  • «-m32» 32 битный режим
  • «-mfpmath=sse» включает использование XMM регистров в вещественной арифметике (вместо вещественного стека в x87 режиме)
  • «-funroll-loops» включает развертывание циклов
  • «-ffunction-sections» размещает каждую функцию в отдельной секции
  • «-Os» оптимизирует производительность и размер
  • «-fno-asynchronous-unwind-tables» гарантирует точность таблиц раскрутки только в пределах функции
  • “—gc-sections” включает удаление неиспользуемых секций
  • “—strip-all” удаляет символьную информацию
  • Блог компании Intel
  • Программирование
  • Компиляторы

Источник: habr.com

Этапы компиляции на Си: предобработка, трансляция, компоновка

Как уменьшить размер CSS, JS и HTML файлов

Минификация CSS , JS , HTML файлов (не путать со сжатием CSS ) включает в себя удаление любых ненужных символов из файла, чтобы уменьшить его размер и тем самым ускорить загрузку.

Ниже приведены примеры того, что удаляется во время минификации файла:

  • Символы пробелов;
  • Комментарии;
  • Разрывы строк;
  • Разделители блоков.

В большинстве случаев процесс минификации не влияет на файл, а оптимизирует его для загрузки. Особенно полезна минификация CSS , JS и HTML-файлов . Кроме этого Google при ранжировании учитывает быстродействие ресурса, а минификация помогает ускорить работу сайта.

Чтобы различать минифицированные файлы, в их имена добавляется расширение .min ( например: foobar.min.css ).

Разница между минификацией и сжатием

Минификация и сжатие CSS файлов – это не одно и то же. Хотя оба этих метода предназначены для уменьшения времени загрузки. Различие заключается в том, как они работают. Сжатие используется для уменьшения размера файла при помощи алгоритмов сжатия, таких как Gzip или brotli . Файлы сжимаются перед отправкой клиенту.

Следовательно, процесс сжатия осуществляется следующим образом:

  1. Файл сжимается с помощью алгоритма сжатия;
  2. Выполняется запрос для сжатой версии файла;
  3. Сжатый файл отправляется от сервера к клиенту;
  4. Клиент распаковывает файл и считывает информацию.

Поддерживаемые алгоритмы сжатия могут варьироваться в зависимости от сервера, а также браузеров. Когда браузер отправляет запрос серверу, он сообщает ему, какой метод сжатия поддерживает, так что сервер может оптимизировать отклик для этого браузера.

Реверсинг python программы, почему python не безопасен

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

Пример минификации

В следующем примере показано, как CSS файл выглядит до и после минификации.

Читайте также:
Как работать в программе вс

ДО CSS минификации:

.entry-content p < font-size: 14px !important; >.entry-content ul li < font-size: 14px !important; >.product_item p a

ПОСЛЕ CSS минификации:

.entry-content p,.entry-content ul li.product_item p a

После минификации CSS-файл стало сложнее читать, поскольку отсутствуют переносы строк, разделители и т.д. Но оптимизированный вариант имеет меньший размер, что ускоряет его загрузку, как и сжатие CSS онлайн .

Минификация CSS

Онлайн

  • csscompressor.com — позволяет выбрать уровень минификации и размер файла на выходе:

Онлайн

  • cssminifier.com — инструмент довольно легкий в понимании. Введите существующий CSS и уменьшенная версия создается автоматически. После этого можно загрузить сжатый код CSS в виде файла:

Онлайн - 2

Инструменты разработки

  • yui.github.io : позволяет осуществлять процесс сборки в среде разработки, которая уменьшает, переименовывает и сохраняет оптимизированный файл в рабочем каталоге;
  • phpied.com : инструмент использует возможности минификации CSS и YUI Compressor, но он применяет JavaScript вместо Java.

Минификация JS

Онлайн

  • closure-compiler.appspot.com : можно использовать как онлайн-инструмент и как API-интерфейс. Этот инструмент позволяет настроить оптимизацию и форматирование:

Онлайн

  • jscompress.com : позволяет минимизировать JS путем копирования/вставки кода. Дополнительно можно загрузить JavaScript-файл и выполнить процесс минификации нескольких файлов одновременно:

Онлайн - 2

  • javascript-minifier.com : создан теми же разработчиками, что и cssminifier . JS Minifier позволяет скопировать минимизированный код или скачать его в виде файла. А также осуществить сжатие CSS и JS онлайн :

Инструменты разработки

  • yui.github.io : предоставляет возможность минимизировать JS файлы для веб-проектов.

Минификация HTML

  • htmlcompressor.com : предоставляет возможность выбора между различными уровнями минификации HTML и встроенного в него кода CSS и JS :

Минификация HTML

  • minifycode.com : представляет собой текстовое поле, куда нужно вставить код HTML и сгенерировать его уменьшенную версию:

Минификация HTML - 2

Существует множество инструментов для минификации файлов. Многие CMS также предлагают плагины и расширения для минификации CSS , JS и HTML — файлов.

WordPress плагины для минификации

  • Better WordPress Minify ;
  • Autoptimize .

Многие плагины кэширования также предлагают возможность минификации. Например, Cache Enabler поставляется с возможностью включения минификации HTML и JS . Использование этой функции позволяет уменьшить время загрузки веб-страниц, но в некоторых случаях это может привести к конфликту с другим плагином сжатия CSS WordPress .

Drupal модуль минификации

В сообществе Drupal популярным вариантом для минификации является модуль Minify . Он позволяет минимизировать HTML , JavaScript файлы и использует компилятор Google Closure , чтобы проанализировать минификацию. Конфигурация данного модуля проходит быстро.

Joomla! Расширение для минификации

CMS Joomla также предлагает расширение для оптимизации сайта под названием JCH Optimize , которое уменьшает размер JavaScript и производит сжатие CSS файлов . Оно также предоставляет возможность включить GZIP сжатие для агрегированных файлов.

Преимущества уменьшения файлов

Решение уменьшить размер CSS , JS и HTML файлов предоставляет преимущества, как пользователям сайта, так и его владельцу. Использование минификации — это отличный способ оптимизировать ваш сайт, и это легко реализовать с помощью рассмотренных инструментов и плагинов.

ВЛ Виктория Лебедева автор-переводчик статьи « How To Minify CSS, JS, and HTML »

Читайте также:
Рейтинг программ для записи видео с компьютера

Дайте знать, что вы думаете по этой теме материала в комментариях. Мы очень благодарим вас за ваши комментарии, подписки, отклики, дизлайки, лайки!

Источник: www.internet-technologies.ru

Какие программы используют для уменьшения объема файлов программы компиляторы

Как видно из заголовка статьи разговор будет о размере исполняемого файла при компилирование в Lazarus. Это частый вопрос у тех кто только недавно начал программировать в Lazarus. И так начнем.

Введение

Картинка для привлечения внимания

lazarus exe size

При первой компиляции в Lazarus проекта, многие удивляются размеру исполняемого файла . Ниже приведено сравнение размеров скомпилированного пустого проекта в разных средах программирования.

Среда разработкиРазмер файла по умолчанию (байт)Размер файла с оптимизацией (байт)
Lazarus 15 210 592 1 818 112
Delphi XE7 11 510 970 2 277 376
Delphi 7 368 128 368 128

Как видно из этой таблицы не все так уж и плохо у лазаруса в плане размеров, последние версии Delphi изрядно растолстели, как осенние белки. Но все же далеко ему и до Delphi 7. В общем есть куда стремится. Если же добавить на форму кучу разных компонент то размер файла будет весьма впечатляющий.

Вот пример размера файла самой среды Lazarus собранной с кучей установленных компонентов.

Все каких то 235 мегабайт. 235 мегабайт Карл. Файл lazarus.old.exe собран как раз таки с оптимизацией. Разница в размере видна невооружённым взглядом.

Большой размер исполняемого файла обусловлен тем что компилятор включает много дополнительной отладочной информации, которая помогает отлаживать программу. Но это все требуется зачастую на этапе отладки программы, конечному же пользователя не хочется сидеть и ждать когда через пол часа закачается программа. Вот для это и нужно эту лишнюю информацию исключать.

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

Настройка параметров компилирования

Пользователям старой версии лазаруса необходимо было в настройках проекта выставлять различные галочки для исключения лишней информации из файла. Было это примерно так.

Открывалась форма параметры проекта. И на вкладках выставлялись нужные галочки.

На вкладке Компиляция и компоновка снимались галочки.

lazarus project options

На вкладке Отладка снималась галочка «Генерировать отладочную информацию» и ставилась галочка «Вырезать символы из исполнимого файла»

lazarus debug

Данные настройки позволяют уменьшить размер файла.

В новой же версии Lazarus, на данный момент пишу это для версии 1.4.4 все несколько упростилось.

Теперь можно сделать так. Открываем параметры проекта и нажимаем на «Параметры компиляции». Затем нажимаем кнопку рядом с режимами сборки.

lazarus option

Появится окно параметров сборки. Тут нажимаем кнопку «Создать режимы отладочной и конечной сборки «. В окне появится еще два режима сборки, Release и Debug, такие же режимы если в последних версиях Delphi XE?.

Режим Release будет создавать маленький исполняемый файл.

После этого на панели инструментов появится кнопка выбора режимов.

lazarus panel

Достаточно выбрать нужный режим.

Это методы используемые из среды разработки. Теперь про дополнительные методы.

Читайте также:
Установить программу на Айфон для прослушки

Утилита Strip.exe

В комплекте с компилятором Free Pascal имеется замечательная утилита Strip.exe, которая вычищает отладочную информацию из исполняемого файла.

Утилита запускается из командной строки с параметрами

strip.exe —strip-all project1.exe

Но это не наш метод.

Сделать можно так.

Открываем меню Сервис — Настроить внешние средства.

В открывшемся окне необходимо добавить новый инструмент. Я сделал так.

lazarus strip

Теперь можно пользоваться утилитой strip.exe прямо из среды разработки.

Утилита upx.exe.

Так же для уменьшения размеров файла можно использовать различные упаковщики. Они позволяют существенно уменьшить размер программы. А более продвинутые позволяют установить защиту на исполняемый файл или триальный период. Одной из самых распространенных программ для сжатия файлов является UPX. Данная утилита одна из самых простых в использовании.

Из командной строки это делается так.

upx.exe —best project1.exe

Но опять же все можно упростить до минимума.

Как и в предыдущем методе делаем так .

lazarus strip

И можем пользоваться утилитой из среды разработки.

lazarus menu

Она сжимаем файл достаточно хорошо. И не особо уменьшает скорость запуска файла. Пример работы показан на изображение.

lazarus folder

Почти троекратное сжатие файла.

Использование LLCL — Lazarus Light LCL

Недавно появились компоненты которые позволяют существенно уменьшить размер исполняемого файла. Это компоненты LLCL этакий аналог KOL для Delphi. Это набор файлов в которых переработанных классов free pascal (поправьте если ошибаюсь) где часть кода переписана на ассемблере, что позволяет уменьшить размер занимаемый исполняемым файлом. LLCL основан на базе Light VCL replacement for Delphi 7 наборе классов для Delphi 7 .

LLCL не требует установки его в Lazarus, достаточно просто в параметрах компиляции проекта сделать на них ссылку. И при сборке будут использоватся эти классы, а не стандартные от лазаруса.

В общем я сделал так . Скачал данный компоненты. Закинул их в папку где у меня лежат компоненты от лазаря. Затем создал простой проект с формой, на ней разместил несколько компонентов.

lazarus form1

А затем собрал проект. Несколько ниже приведены полные результаты эксперимента. Затем я использовал компоненты LLCL. Делается это так. Открывается окно параметров проекта, затем выбирается пункт пути и нажимается кнопка «Другие модули».

В появившемся окне добавляем в верхнее окно путь к папке с файлами LLCL.

lazarus -fu

Затем нажал Ок и закрыл параметры проекта. И снова собрал проект снова. Исполняемый файл стал весьма меленьким. Решил еще оптимизировать проект. Удалил стандартную иконку из проекта. И пересобрал проект. Программа стала еще меньше.

И под конец сжал её upx-ом. Результаты видно тут. Это очень замечательно. Можно писать очень маленькие вирусы утилиты на лазарусе.

P.S. Дальнейшие испытания показали что при использование LLCL придется применять крайне малый набор графических компонент. Это печально.

lazarus all size

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

Источник: delphi-devs.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru