Релиз Lazarus 1.8
Модератор: Модераторы
Когда я стал разбирать, чего в екзешнике такого толстого (в голом фпц, даже без лазаря!) то оказалось, что 70% занимает информация о номерах строк и именах функций для отладчика.
Вещь, вроде, необязательная, но без неё любое исключение выкинет с нерасшифруемым шестнадцатеричным адресом.
Я в своём движке сделал страшное извращение, чтобы вынимать это и держать отдельно (чисто для понтов). В результате, екзешник после upx - 350 Кб, информация о строках, пожатая TCompressionStream - 400Кб.
Но это голый фпц. С Лазарем наверняка выйдет гораздо, гораздо толще.
Вещь, вроде, необязательная, но без неё любое исключение выкинет с нерасшифруемым шестнадцатеричным адресом.
Я в своём движке сделал страшное извращение, чтобы вынимать это и держать отдельно (чисто для понтов). В результате, екзешник после upx - 350 Кб, информация о строках, пожатая TCompressionStream - 400Кб.
Но это голый фпц. С Лазарем наверняка выйдет гораздо, гораздо толще.
Пишу программу.
Всё включено, в смысле, отладочная информация и прочее. Весит 54 MB
Всё отладочное выключил. Программа стала весить 5.69 MB.
Имеем, без отладочной инфы программа облегчилась почти в 10 раз.
Всё включено, в смысле, отладочная информация и прочее. Весит 54 MB
Всё отладочное выключил. Программа стала весить 5.69 MB.
Имеем, без отладочной инфы программа облегчилась почти в 10 раз.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
sign, всю жизнь так было. Просто держи отладочную инфу в отдельном файле.
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Я имею по несколько режимов сборки и отладки в Lazarus'e. Релизный, отладочный, для Linux, для Windows, для разных конфигураций программы. В каждом свои настройки компиляции, пути для вывода, имени компилиируемого файла, ключей компиляции. Очень удобно стало в Lazarus в последних версиях. Кто еще не юзает очень рекомендую. Поэтому спокойно себе разрабатываете в отладочной режиме, при заливке релиза с минимальным размеров файла и скрытие отладочного кода, просто нажимаю скомпилировать release.
Если это про продолжить/запустить то есть соответствующая иконка на панели.
F9, исключительно, откомпилировать только что внесенные изменения и запустить программу. При запуске программа упирается в вызов функции, и дебагер заканчивает жизнь выстрелом в голову.
Alex2013
>>Еще нет, но возможно это не лазарус, а FPC облажался
Ты бы выбирал формулировки.
Просто к говнокоду добавилось чтото полезное из lcl-fcl-rtl
>>Еще нет, но возможно это не лазарус, а FPC облажался
Ты бы выбирал формулировки.
Просто к говнокоду добавилось чтото полезное из lcl-fcl-rtl
Ну не знаю, у меня com библиотека при сборке Лазарем 1.6.4 - 703 килобайта, если тот же проект собрать 1.8 - то 685. Версия fpc 3.0.4. В целом не заметил каких либо проблем. Разве что...SysToUTF8 и наоборот вынесли в LazUTF8 и пришлось добавлять-)
vada писал(а):Если это про продолжить/запустить то есть соответствующая иконка на панели.
F9, исключительно, откомпилировать только что внесенные изменения и запустить программу. При запуске программа упирается в вызов функции, и дебагер заканчивает жизнь выстрелом в голову.
Может программа все-же УЖЕ запущена ? ...ты ее перекомпилируешь / перезапускаешь ... а винда пытается поднять из кеша быстрого закуска СТАРУЮ версию ...(Реально у меня существующая но увы трудно уловимая ситуация(хотя возможно это у меня на компе просто память чуть глючит изредка) когда вылезает уже "гарантированно исправленная" ошибка , в сложных случаях лечится минимальным изменением внешнего вида программы чуть кнопку или надпись сдвинуть например, в простом достаточно не забывать "жмакнуть" Ctr-F2 перед повторным вызовом ... )
Вообщем пробуй давить Ctr-F2 перед F9 . Вдруг поможет !
Добавлено спустя 1 час 36 минут 37 секунд:
zub писал(а):Alex2013
>>Еще нет, но возможно это не лазарус, а FPC облажался
Ты бы выбирал формулировки.
Просто к говнокоду добавилось чтото полезное из lcl-fcl-rtl
Бу га ... Ты действительно считаешь lcl-fcl-rtl неcодержат "коричневого вещества" и сам (десу! но скажу прямо: хамская манера раздражает здесь не только меня ) весь в белом и пушистом ? ...но разумеется, я понимаю, что не мне "открывать тебе глаза" !
Да, я с легкость признаю, что мой код далек от совершенства (и это еще мягко сказано ), он у него есть одно неоспоримое свойство он (особенно там где это зависит только от меня ) работает, а разный мусор постепенно чистится .
Проектов, что я толкаю немало и не все разумеется выкладывается в интернет .
А много ли вообще народа хоть, что-то писать самостоятельно пытаться? Ответ прост "Один на хрен знает сколько тысяч " (и "прикинь, а им и не надо!" не работает ! Чаще всего главная причина банальная лень )
К тому-же если сравнивать мои "начальные условия" и условия почти любого "другого" то все удивятся почему этот самый гипотетический "другой" еще не "директор автодеска "(или нового-микрософта) если даже подобный мне "неликвид" реально что-то пытается сделать (да еще и "проекты для души" толкает).
Зы
Ну ладно "отвел душу ... "война закончена, всем спасибо " теперь можно и делом знаться !
На счет размера кода есть же КОЛ! Там почему-то получается и "рыбку съесть и в санки сесть" да есть шероховатости и теряться кросплатформенность , но пусть бы размер кода был не в 10 раз меньше(как в Кол) а допустим в пять ! Что мешает сделать некую "урезанную но надежную версию LCL" для простых приложений ( там где вся его "сила и мощь" просто не нужна или там где "мясо кода" работает с устройствами по сути самостоятельно ) ? (Вин апи не предлагать! Ибо даже "жуткий кол" вполне удобная среда по сравнению с ним )
Лекс Айрин писал(а):sign, всю жизнь так было. Просто держи отладочную инфу в отдельном файле.
Это я тем, кто вдруг не знал!
Или знал, да забыл.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Alex2013 писал(а):На счет размера кода есть же КОЛ! Там почему-то получается и "рыбку съесть и в санки сесть" да есть шероховатости и теряться кросплатформенность , но пусть бы размер кода был не в 10 раз меньше(как в Кол) а допустим в пять ! Что мешает сделать некую "урезанную но надежную версию LCL" для простых приложений ( там где вся его "сила и мощь" просто не нужна или там где "мясо кода" работает с устройствами по сути самостоятельно ) ? (Вин апи не предлагать! Ибо даже "жуткий кол" вполне удобная среда по сравнению с ним )
Все это в лазаре есть. И усеченный LCL тоже. Другое дело, что он используется для консольного типа программ. Кстати, размер линуксоидного кода больше еще и потому, что некоторая, как минимум, часть WinAPI просто-напросто эмулируется.
И, кстати, что-то я не встречаю справок по КОЛу и призывов его скачать. Не считая периодических выкриков из глубины аудитории. Большая часть кода прицепляемая к программам мертва и никогда не вызывается, и это проблема глобальна для любого языка. Минимальный размер единицы в тот, что она просто-напросто недостаточна функциональна и уже мертва. И, кажется, я догадываюсь почему.
все визуальные компоненты KOL являются экземплярами единого огромного TControl, реализующего функциональность сразу всех интерфейсных элементов ОС. Можно говорить, что решение KOL — это ОО-надстройка над описателем окна (handle) «в лоб», не делающая различий между разными классами элементов интерфейса, как не делает их сама ОС.
После этого что-то неохота на нее даже смотреть((
Фокус Кол в том что там используются Объекты а не классы (хотя не везде и от версии зависит ) ... + сделано все так что даже самый тупой компилятор выкидывает большую часть "мертвого кода" а функциональность по сути та же что и VCL, LCL(а кое где и выше )...
...плюс нормально работает уровень "Кол без МСК" (программирование без визуальной поддержки )чего очень часто не хватает в VCL, LCL...
На нем очень удобно делать "БЫСТРЫЙ GUI КОД" разных утилит нужных "прямо сейчас" или "вчера".
Зы
Кол не умер но ослаб как и любой проект по сути заброшенный исходной командой .
Но идея жива и думаю еще не раз будет "творчески переосмыслена" ... Пара тройка файлов в место много файлового монстра VCL, LCL крошечный размер ЕХЕ-шника и довольно большое количество библиотек расширений (которые легко писать ) при сохранении возможности визуального конструирования - по моему это отличный пример для будущего подорожания !
Зы Зы
Вчера накидал макет одной программы в хайасме ( там используется кол+fpc хотя и не очень аккуратно и оптимально так вот размер эхешника 154,6 КБ да програмулина простая но я с ужасом представляю что из нее Лазрус с LCL бы сделали )
...плюс нормально работает уровень "Кол без МСК" (программирование без визуальной поддержки )чего очень часто не хватает в VCL, LCL...
На нем очень удобно делать "БЫСТРЫЙ GUI КОД" разных утилит нужных "прямо сейчас" или "вчера".
Зы
Кол не умер но ослаб как и любой проект по сути заброшенный исходной командой .
Но идея жива и думаю еще не раз будет "творчески переосмыслена" ... Пара тройка файлов в место много файлового монстра VCL, LCL крошечный размер ЕХЕ-шника и довольно большое количество библиотек расширений (которые легко писать ) при сохранении возможности визуального конструирования - по моему это отличный пример для будущего подорожания !
Зы Зы
Вчера накидал макет одной программы в хайасме ( там используется кол+fpc хотя и не очень аккуратно и оптимально так вот размер эхешника 154,6 КБ да програмулина простая но я с ужасом представляю что из нее Лазрус с LCL бы сделали )
а это не вариант?пусть бы размер кода был не в 10 раз меньше(как в Кол) а допустим в пять
Но LLCL как и kOL - не сильно касаем ветки...
А мониторинг за размерами экзешника среды с какой целью осуществляется? Или счет места на винте идет уже у килобайтах?
КМК, стабильные релизы от выпуска к выпуску становятся все стабильнее и стабильнее
Это в транках периодически ломают уже отлаженные вещи.
КМК, стабильные релизы от выпуска к выпуску становятся все стабильнее и стабильнее
До сих пор не дружит с файлами более 2ГБ.
Свернуть развернуть лазарус формы проекта пропадают устал уже Проект\Форма включать так и не исправили косяк уже давно писал об этом
