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

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

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

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

Сообщение vitaly_l » 25.10.2015 01:40:40

скалогрыз писал(а):Код, который относится исключительно к данным наследника (TListView), не должен выносится в предка win32proc.
Нарушение ооп привело к разжирению бинарика на 48 килобайт. Коррекция поможет сохранить и "худобу" и функционал.

Так в этом-то и вся проблема, знание о нарушении или соблюдении ООП - у меня точно отсутствует. Судя по Вашим словам, то и у того кто писал модуль этих знаний ООП - тоже не было... Хотя я вообще не понимаю, как исключительные данные наследника попали к предку? Потом, почему бы им не стать данными предка, которые он передаёт наследнику? В чём нарушение?

Я никогда не писал коллективный код... я думаю, что я совершенно по другому придумываю и вижу код. Если я правильно Вас понял, то при написании FPC и IDE - есть какие-то строгие правила, которые мне не известны. Но я смогу такие ошибки найти или понять, только полностью проанализировав весь код... А Вам достаточно одного взгляда, т.к. вы знаете систему/структуру построения такого кода.


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

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

Сообщение скалогрыз » 25.10.2015 05:46:56

vitaly_l писал(а):...то и у того кто писал модуль этих знаний ООП - тоже не было...

знания как раз были, а вот времен на правильное написание нет. Именно по-этому воз и ныне там :D

Добавлено спустя 1 минуту 7 секунд:
vitaly_l писал(а):Но я смогу такие ошибки найти или понять, только полностью проанализировав весь код...

практикуйся без гото, и сам сможешь через год. Если не будешь практиковаться, то через год, будешь в такой же ситуации, как и сейчас.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение vitaly_l » 25.10.2015 13:46:15

скалогрыз писал(а):знания как раз были, а вот времен на правильное написание нет. Именно по-этому воз и ныне там

Если ошибка найдена... и она систематическая, в смысле присутствует практически для каждого компонента, то почему бы не взяться всем миром и потратив по 15 минут времени не закомментировать ошибки и перенести код в нужный модуль? А потом отправить это всё в баг трекер, чтобы внесли изменения в релиз... И у же через 15 минут у нас будет Лазарус, который не будет вставлять 3 мегабайта мусора в файлы... Принцип системной ошибки присутствующей в "каждом" компоненте - описан скалогрызом выше. Если 100 человек возьмутся, то понадобится по 15 минут времени каждого...

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

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

Сообщение wavebvg » 26.10.2015 00:19:38

vitaly_l писал(а):Если ошибка найдена... и она систематическая

Тут дело не в ошибке - ошибка вещь техническая. Тут дело в голове: иногда нужно много времени на то, чтобы корректно написать код не потому что не видишь правильного решения, а потому что не можешь его выполнить без ошибок, ничего не упустив из вида. Не берем в расчёт личностей с идеями фикс или «все гоДно», которым не нравится геморой с заполнением секций импорта, а такие люди, без сомнения, есть и в команде fpc, и в команде lazarus.
Да и отладка больших модулей часто бывает проще и ошибки можно раскостылить быстро. Циклическое дерево зависимостей как раз и говорит, что это один модуль, просто часть информации скрыли и, если это не имеет последствий для последующих разработчиков, то вполне допустимо (не нужно, при наследовании, явно включать все модули в секцию импорта).
PS Они в реализации gtk2 виджетов вообще к lcl гвоздями прибили, хотя максисмум, что нужно - это glib (в зависимостях), и, следовательно, большая часть невизуальных компонент требует... Gtk, что явно не гуд (либо добро пожаловать в fcl).
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

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

Сообщение sign » 26.10.2015 09:19:31

vitaly_l писал(а):Вот эти дурацкие сложночитаемые имена, типа: TMyLovelySuperPuperDlinnyiNameClass - нужно уничтожить в бинарном коде, или хотя-бы превратить в T1, T2, T3. Потому что, классов в любой программе - очень много и не только Вами написанных.

Какая злая сила заставляет вас писать длинные имена?
Потом, какая злая сила мешает вам написать один раз сканер, который будет шерстить вашу директорию с файлами итоговой программы, заменять все имена на ваши любимые T1, T2,...,Tn и запускать компиляцию?

Добавлено спустя 6 минут 5 секунд:
vitaly_l писал(а):Круто! Этот котёнок вовремя умер, т.к. я такое действительно не использую, но теперь буду - т.к. нравится. Спасибо!

:shock:
Вот теперь я верю, что вы художник. :lol:
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

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

Сообщение vitaly_l » 26.10.2015 13:35:49

sign писал(а):Какая злая сила заставляет вас писать длинные имена?
Потом, какая злая сила мешает вам написать один раз сканер, который будет шерстить вашу директорию с файлами итоговой программы, заменять все имена на ваши любимые T1, T2,...,Tn и запускать компиляцию?

Ну мои-то 5-ть классов - перед релизом я действительно могу сократить напильником, не спорю... Но лучше бы это делал FPC/
А вот что делать с чужими классами? которых ещё 1000 подключено и все они вставляются в бинарник как есть???
Как быть с top, bottom, left, right, Height и Width и всеми названиями элементов - которые занимают 1 Мегабайт! Их как удалить?
Один Мегабайт... <== Это довольно много...


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

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

Сообщение Лекс Айрин » 26.10.2015 16:04:24

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

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

Сообщение vitaly_l » 26.10.2015 16:50:21

Лекс Айрин писал(а):Копируете библиотеки RTL и LCL в другие папки. Проходите по ним напильником, кувалдой или известной матерью... Указываете в Лазаре пути до них, вместо старых и все.

А... да действительно так, можно сократить для релиза... ( поменять названия 10 000 классов в 1000 модулях... после этого безусловно всё будет работать как часы ) и если ещё добавить динамическое создание элементов ( что очень удобно и наглядно ), то реально 1 Мб из 3-х можно сократить... Остальное: так называемый вами "мусор", который как оказалось, не есть ошибка FPC. Соответственно FPC-то - удаляет лишний код, но некоторый лишний код (мусор) остаётся из-за причин указанных скалогрызом... Но вот это уже исправить - мне не по силам, т.к. я с трудом понял "о чём он говорил"; и найти это в тексте 1000 модулей... выше моих возможностей. Кстати FPC 3 примерно на 200 Кб меньше файл.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

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

Сообщение Лекс Айрин » 26.10.2015 17:38:14

vitaly_l писал(а):Остальное: так называемый вами "мусор",


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

vitaly_l писал(а):Но вот это уже исправить - мне не по силам, т.к. я с трудом понял "о чём он говорил";


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

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

Сообщение sign » 27.10.2015 07:33:21

vitaly_l писал(а):А вот что делать с чужими классами? которых ещё 1000 подключено и все они вставляются в бинарник как есть???
Как быть с top, bottom, left, right, Height и Width и всеми названиями элементов - которые занимают 1 Мегабайт! Их как удалить?

Отлично.
Вы написали сканер и напустили его на всю лазарусовую ветку, что б всё до дна!!!
Это ж не дельфи вам, всё есть.
И вот, перед вами два варианта Лазаруса.
Один - исходный, с мегабайтами, второй - для окончательно доведения до.

vitaly_l писал(а):Один Мегабайт... <== Это довольно много...

:shock: Куда много!!!
У меня, в простецком древнем самсунге с андроидом - 16 ГИГАБАЙТ внутренней памяти. А ведь ещё можно внешнюю память воткнуть. Это ещё 32 ГБ.
Ему энтот МБ - тьфу мелкая.
Если что.

А если на компе?
Там этот ваш мегабайт - вовсе величина неуловимая.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

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

Сообщение Снег Север » 27.10.2015 10:35:29

Вот я уже 13-ю страницу дискуссии смотрю и всё не могу понять - зачем?! Зачем всё это, Карл? И никто мне объяснить не хочет...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3038
Зарегистрирован: 27.11.2007 16:14:47

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

Сообщение Лекс Айрин » 27.10.2015 10:50:17

Снег Север, а у Вас лично, никогда диск не забивался? У меня было. А так же было, что при 8гиговой памяти приходилось покупать еще 8 и хороший (не топовый, но все же) видеоадаптер. И комп немного, но заметно, притормаживал. Потом уже проходило обновление и все вернулось в норму, но сам факт.

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

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

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

Сообщение Mikhail » 27.10.2015 11:22:32

Лекс Айрин писал(а): у Вас лично, никогда диск не забивался?

Да регулярно, торренты, фул хд фильмы, стерео фильмы, блю рей рипы, много весят, заразы, но вот чтобы программами... не припомню такого. Хотя стоп! было такое в начале 90-х, иногда игрушки было некуда поставить :D
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

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

Сообщение Лекс Айрин » 27.10.2015 11:34:44

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

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

Сообщение Снег Север » 27.10.2015 13:08:56

Лекс Айрин писал(а):Снег Север, а у Вас лично, никогда диск не забивался?

Забивался, но фильмами и играми (где программная часть составляет ничтожный процент от объема). Сейчас у меня дома стоят три 240-гиговые диска плюс внешний террабайтный. Хватает. И ни малейшей причины парится из-за нескольких десятков мегабайт размера exe-шника я не вижу.

А мобилки - дело немного другое.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3038
Зарегистрирован: 27.11.2007 16:14:47

Пред.След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12

Рейтинг@Mail.ru
cron