Mikhail писал(а):Похоже здесь никто не знает что такое RTTI.
Я действительно не знаю что такое RTTI, но на форуме говорили что это для отладки. Отладка у меня отключена.
sign писал(а):художник с шизой, но... вы же не такой? Хочу, очень хочу увидеть вашу методу подсчёта.
Конечно я "не такой", и я с шизой. Шиза оч. полезная вещь, т.к. даёт людям воображение. Методика подсчёта очень проста. Выше Vada писал, что существует такое понятие как "Object.Name" ещё классы есть, у них тоже есть имена. Ещё есть: переменные и функции - они тоже имеют названия. Ваш код составляет 8.31 Мб - это наверное большая программа ( если конечно там не труд Достоевского зашит в переменных ). Моя программа весит 3.6 Мб, а вот исходники всего лишь 600 Кб. Если я в СВОИХ исходниках заменю все названия: переменных, функций, классов и объектов на порядковые номера, то исходники станут весить 100 Кб. А итоговая программа будет весить примерно 3.1 Мб. Соответственно: я выйграл 500 Кб. Однако откуда берутся 3 Мб ? Я не знаю... все говорят что там 80% мусора... ну и что? Мне это сейчас неважно, т.к. я точно знаю, что если там вместо имён поставить "порядковые номера", то эти 3 Мб по аналогии с 600 кб превратятся в 500 Кб. Итого: МОЯ программа вместо 3.6 Мб, станет весить всего 600 Кб. Но как выяснилось и это не предел, т.к. Лекс Айрин (а также это говорится и в описании линковщика), говорит что все названия при линковании заменяются на адреса. Так вот, если в итоговой программе использовать исключительно только адреса, а ВСЕМ названиям после линковки присвоить значение nil, то 600 кб превратятся в ~333 Кб. Что в моём понимании соответствует понятию 555.
Числа: 555 или 333 - это заранее неопределённые значения, но чем оно больше 555 или меньше 333, тем больше в МОЁМ понимании будет процент полезности от действий.
Однако несмотря на то что имена были убраны, остался неиспользуемый код (хотя там убраны имена и он стал меньше)... Так вот если его убрать, то моя программа станет весить 111 Кб вместо 3.6 Мб. Для виндоуз мне пофигу сколько она весит, но я хочу попробовать её скомпилировать для андроида, т.к. мне удобнее ей будет пользоваться на андроиде. И вот для андроида, 111 Кб вместо 3.6.Мб ОЧЕНЬ большой прирост! Я исчерпал Ваш интерес к моим расчётам, Карл?
SSerge писал(а):Поставить Турбо Паскаль 7.0 на соответствующую ему машину, он "правильно обращается к родному линкеру". Т.е. умеет убирать из .exe неиспользуемый код. И, кстати, имен переменных и классов туда не пишет.
Вот пожалуйста, вкратце ВСЁ тоже самое, только на скупом программистском языке. Соответственно, то что говорит Лекс Айрин и мои рассчёты - это не миф, а реальность! Осталось только выяснить, как это сделать из под Лазаруса или напрямую обращаясь к FPC. Я последнее время, не верю, что Лазарус с FPC чего-то не могут...
Соответственно мой вопрос к Лекс Айрину всё ещё в силе: Как правильно обратиться к "родному линкеру" или без него "самим компилятором" проделать такую "линковку" ? .