Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.09.07;
Скачать: CL | DM;

Вниз

RTTI   Найти похожие ветки 

 
Kerk ©   (2014-02-01 13:12) [0]

Попробовал специально для DevilDevil попробовать убрать из проекта RTTI и посмотреть что станет с размером EXE.

Эффект достигнут вставкой в dpr-файл этих директив перед секцией uses:
 {$WEAKLINKRTTI ON}
 {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}


Пустой проект с пустой формой, VCL, Delphi XE5:
С RTTI    - 2 104 320 байт
Без RTTI - 1 721 344 байт


Пустой проект с пустой формой, FireMonkey HD, desktop, Delphi XE5:
С RTTI    - 5 052 928 байт
Без RTTI - 4 239 360 байт


Речь конечно о релизных сборках. Можно еще больше заморочиться и пересобрать с этими директивами и саму VCL/RTL/FM, но тут уж я пас.

И напоследок то же самое попробовал со своей WordLines (самый большой FireMonkey-проект, что есть под рукой):

С RTTI - 8 434 176 байт
Без RTTI - 7 120 896 байт


Ну вот как-то так.


 
Дмитрий СС   (2014-02-01 13:17) [1]

Что ж там может быть у тебя на целый мегабайт.


 
DVM ©   (2014-02-01 13:25) [2]

А в андроиде, если разрабатывать стандартными средствами (java)  минимальный пустой проект 4 кб.


 
Kerk ©   (2014-02-01 13:27) [3]

А вот при соборке той же WordLines под андроид почему-то разницы почти никакой.

С RTTI:
so: 29 073 420 байт
apk: 9 385 739 байт

Без RTTI:
so: 29 057 036 байт
apk: 9 380 963 байт


Вот такие дела.

> Дмитрий СС   (01.02.14 13:17) [1]
>
> Что ж там может быть у тебя на целый мегабайт.

Информация о типах, видимо.
Барри Келли году так в 2010м писал на stackoverflow, что размер данных RTTI уменьшить возможно, но многое придется переделывать. Видимо, воз и ныне там, к тому же сам Барри уже в EMBT не работает.

Ну вообще мегабайт - это ерунда. Я боялся, что на самом деле все хуже. Мне же тут нарассказывали ужасов про RTTI :)


 
Kerk ©   (2014-02-01 13:29) [4]


> DVM ©   (01.02.14 13:25) [2]
>
> А в андроиде, если разрабатывать стандартными средствами
> (java)  минимальный пустой проект 4 кб.

Java-машину к этим 4м кб прибавь :)

Помню лет 10 назад нередко встречались люди, которые для уменьшения размера exe компилили проект с рантайм пакетами, а потом удивлялись, почему программа на других компьютерах не работает :)


 
DVM ©   (2014-02-01 13:33) [5]


> Kerk ©   (01.02.14 13:29) [4]


> Java-машину к этим 4м кб прибавь :)

Ну она же там в любом случае есть. Кстати, там не Java машина. Там совсем другой байт код и она не стековая как Java, а регистровая.

Еще мне интересно, сколько будет занимать проект, созданный на с# и потом собранный с помощью Xamarin под Android. Вот там да, к проекту реально цепляется еще Mono под андроид.


 
Kerk ©   (2014-02-01 13:37) [6]


> Еще мне интересно, сколько будет занимать проект, созданный
> на с# и потом собранный с помощью Xamarin под Android. Вот
> там да, к проекту реально цепляется еще Mono под андроид.

Вот приложение на xamarin: https://play.google.com/store/apps/details?id=com.coinkeeper

>> Размер 10M

Что-то сопоставимое с Delphi, в общем.


 
antonn ©   (2014-02-01 13:43) [7]


> А в андроиде, если разрабатывать стандартными средствами
> (java)  минимальный пустой проект 4 кб.

в эклипсе с пустой активити около 150кб (по крайней мере android-8)


 
DVM ©   (2014-02-01 13:44) [8]


> Kerk ©   (01.02.14 13:37) [6]


> >> Размер 10M
>
> Что-то сопоставимое с Delphi, в общем.

Причем 10 - это наверняка размер архива APK, при распаковке больше будет.
Да, получается сопоставимо. Я думаю размер приложения на Delphi под андроид будет не сильно расти при добавлении функционала.


 
DVM ©   (2014-02-01 13:46) [9]


> antonn ©   (01.02.14 13:43) [7]
>
> > А в андроиде, если разрабатывать стандартными средствами
>
> > (java)  минимальный пустой проект 4 кб.
>
> в эклипсе с пустой активити около 150кб

То в эклипсе. Можно руками и меньше.
http://habrahabr.ru/post/210584/


 
Kerk ©   (2014-02-01 13:46) [10]


> Причем 10 - это наверняка размер архива APK

Да, конечно. Это apk.


 
antonn ©   (2014-02-01 13:49) [11]


> DVM ©   (01.02.14 13:46) [9]
>
>
> > antonn ©   (01.02.14 13:43) [7]
> >
> > > А в андроиде, если разрабатывать стандартными средствами
> >
> > > (java)  минимальный пустой проект 4 кб.
> >
> > в эклипсе с пустой активити около 150кб
>
> То в эклипсе. Можно руками и меньше.
> http://habrahabr.ru/post/210584/

вероятно лишь за счет того, что эклипс сразу пихает разные иконки для разных разрешений? в остальном результат же один и тот же


 
DVM ©   (2014-02-01 13:50) [12]


> antonn ©   (01.02.14 13:49) [11]


> вероятно лишь за счет того, что эклипс сразу пихает разные
> иконки для разных разрешений?

я не разбирался, вероятно да, из за ресурсов.


 
DevilDevil ©   (2014-02-01 14:57) [13]

Попробовал ради Kerk-а скомпилировать пустой проект на Delphi7 (с RTTI)
Debug:
412кб

Release:
359кб

Напомните нам обоим, сколько весит пустой KOL&MCK проект :)


 
Eraser ©   (2014-02-01 15:19) [14]


> Kerk ©   (01.02.14 13:12) 


> Пустой проект с пустой формой, VCL, Delphi XE5:
> С RTTI    - 2 104 320 байт
> Без RTTI - 1 721 344 байт
>
> Пустой проект с пустой формой, FireMonkey HD, desktop, Delphi
> XE5:
> С RTTI    - 5 052 928 байт
> Без RTTI - 4 239 360 байт

попробуй зазиповать каждый из этих вариантов, интересно, что выйдет )


 
Eraser ©   (2014-02-01 15:25) [15]


> DevilDevil ©   (01.02.14 14:57) [13]

а сколько у тебя весит apk под андроид, написанное на Дефли 7? )


 
DevilDevil ©   (2014-02-01 15:31) [16]

> а сколько у тебя весит apk под андроид, написанное на Дефли 7? )

Delphi 7 настолько умён, что не только сжимает *.apk под андроид до 0 байт, но и делает его мегаскрытым, дабы исключить человеческий фактор ручной модификации этого файла :)


 
NoUser ©   (2014-02-01 15:43) [17]


> > Что ж там может быть у тебя на целый мегабайт.
> Информация о типах, видимо.
> Ну вообще мегабайт - это ерунда. ...

!!!


 
DVM ©   (2014-02-01 17:32) [18]


> DevilDevil ©   (01.02.14 14:57) [13]
> Попробовал ради Kerk-а скомпилировать пустой проект на Delphi7
> (с RTTI)
> Debug:
> 412кб
>
> Release:
> 359кб

если SysUtils выкинуть то и без KOL будет килобайт 30. Только нафига все это? На дворе 2014 год, а не 95.


 
DevilDevil ©   (2014-02-01 18:19) [19]

> DVM ©   (01.02.14 17:32) [18]

Ну я вообще не понимаю, зачем эта ветка :)
И тем более причём тут я :)


 
Kerk ©   (2014-02-01 20:54) [20]


> Ну я вообще не понимаю, зачем эта ветка :)
> И тем более причём тут я :)

Это я чтоль спрашивал какими директивами можно отключить RTTI и рассказывал какую экономию это даст? Ну ок. Я что-то даже не удивляюсь.


 
Пит   (2014-02-01 21:25) [21]

Kerk, ты точно также очень неохотно признаешь свою неправоту, предпочитая просто промолчать обычно. Так что чего тут, люди так часто поступают ;)

Но в данном вопросе ты дьявола заборол, бесспорно )


 
Пит   (2014-02-01 21:26) [22]

ну и в принципе спасибо за исследование, интересно было прочитать.


 
Алекс1980   (2014-02-01 21:40) [23]

Опять началась гонка за уменьшение ехе-файлов... :) Счас начнут пакеры советовать ;)


 
Inovet ©   (2014-02-01 21:45) [24]

> [23] Алекс1980   (01.02.14 21:40)
> Счас начнут пакеры советовать ;)

Советую. Люди пишите на ассемблере всё целиком. Будет размер маленький и скорость (выполнения) большая (это если ума хватит).


 
DevilDevil ©   (2014-02-01 21:50) [25]

> Kerk ©   (01.02.14 20:54) [20]

> Это я чтоль спрашивал какими директивами можно отключить
> RTTI и рассказывал какую экономию это даст? Ну ок. Я что-
> то даже не удивляюсь.


Ты рассуждаешь так, будто тебе удалось отключить RTTI. Иначе говоря "вернуть опции RTTI как в прошлых версиях".
Тебе этого не удалось
Что ты хотел доказать?
Что в новых версиях Delphi глупая политика RTTI?
Ты это доказал

Скажу больше, я поражён, что тебе удалось скинуть 1Мб.
Но на Delphi 7 я скинул значительно больше :)


 
DVM ©   (2014-02-01 22:44) [26]


> DevilDevil ©   (01.02.14 21:50) [25]


> Но на Delphi 7 я скинул значительно больше :)

переходи на Delphi 2. Delphi 1 не советую, т.к это уж совсем будет экстрим, да и не заработают приложения в современных ОС, а вот Delphi 2 другое дело.


 
DevilDevil ©   (2014-02-01 22:59) [27]

> DVM ©   (01.02.14 22:44) [26]

Логика не понятно
Как такое решение может повлиять на изменение политик RTTI и качество компилятора в новых версиях Delphi?


 
DVM ©   (2014-02-01 23:03) [28]


> DevilDevil ©   (01.02.14 22:59) [27]


> Логика не понятно

Та нет тут логики :) Меньше версия Delphi - меньше размер исполняемого файла - вот и вся логика.


 
DevilDevil ©   (2014-02-01 23:14) [29]

Удалено модератором


 
Ega23 ©   (2014-02-01 23:15) [30]


> Опять началась гонка за уменьшение ехе-файлов... :) Счас
> начнут пакеры советовать ;)


А чё, для планшетной индустрии сейчас в целом актуально.


 
DVM ©   (2014-02-01 23:28) [31]


> DevilDevil ©   (01.02.14 23:14) [29]


> Есть вещи важнее, чем занимаемое место на диске

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


>
> А чё, для планшетной индустрии сейчас в целом актуально.
>

у меня ща в планшете памяти больше чем во всем моем городе, когда я свой первый компьютер покупал :)


 
DevilDevil ©   (2014-02-01 23:43) [32]

> DVM ©   (01.02.14 23:28) [31]

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


Почти полностью поддерживаю
Это важно, но желательно ещё чтобы программа работала хорошо, а то, при сравнении с продуктами конкурентов, "твой" может остаться не у дел


 
Ega23 ©   (2014-02-01 23:51) [33]


> а то, при сравнении с продуктами конкурентов, "твой" может
> остаться не у дел


Знаю я одну систему, которая "унутре" представляет из себя просто адовъ говнокод, который уже лет 8 переписывается кусками. Но, поскольку, на момент старта она была единственной и безальтернативной, а работала в целом стабильно. несмотря на говнокод, то сейчас ею оснащены почти все (а может уже и все) российские АЭС, а также индийская, китайская и иранская.


 
DevilDevil ©   (2014-02-01 23:53) [34]

> Ega23 ©   (01.02.14 23:51) [33]

Звучит как будто это контраргумент :)
А по факту нет :)


 
картман ©   (2014-02-01 23:56) [35]


> Но, поскольку, на момент старта она была единственной и
> безальтернативной

интересно, почему?


 
Ega23 ©   (2014-02-02 00:07) [36]


> Звучит как будто это контраргумент :)
> А по факту нет :)


По факту - это то самое "кто первый встал, того и тапки".


> интересно, почему?


А она работала. А вот альтернативы - пока ещё нет. Да, она была написана с использованием какого-то адского скриптового языка, на котором конечные автоматы надо было расписывать. И основной метод написания был копипаста огромных портянок и мучительные вылавливания багов. Но она - работала.
А вот альтернативы, написанные на серьёзных языках и даже ассемблере и занимавшие по 834 Кб на диске - только разрабатывались.
Такие дела.


 
Пит   (2014-02-02 00:24) [37]


> Скажу больше, я поражён, что тебе удалось скинуть 1Мб.

я лично больше поражен, как Kerk"у удалось скинуть 20кг ;)


 
DevilDevil ©   (2014-02-02 00:44) [38]

> Пит   (02.02.14 00:24) [37]

Питание и физические упражнения :)
Я сбросил 20ку за месяца 4, может 5


 
картман ©   (2014-02-02 00:54) [39]


> Ega23 ©   (02.02.14 00:07) [36]


> А она работала. А вот альтернативы - пока ещё нет....
Но она - работала.
> А вот альтернативы, написанные на серьёзных языках и даже
> ассемблере и занимавшие по 834 Кб на диске - только разрабатывались.

вот я и спрашиваю: почему криво написанная была и работала, а правильных даже не было?


 
Ega23 ©   (2014-02-02 01:02) [40]


> вот я и спрашиваю: почему криво написанная была и работала,
>  а правильных даже не было?


Это уже другой вопрос, никак не связанный с программированием.



Страницы: 1 2 вся ветка

Текущий архив: 2014.09.07;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.006 c
2-1381759445
Алла
2013-10-14 18:04
2014.09.07
Событие OnChange


15-1391423025
Demo
2014-02-03 14:23
2014.09.07
Проверка на nil


15-1391413931
DevilDevil
2014-02-03 11:52
2014.09.07
А с каких пор inline-ы заработали?


15-1391169968
Дмитрий СС
2014-01-31 16:06
2014.09.07
Создать md5 коллизию?


15-1391525551
Несусвет
2014-02-04 18:52
2014.09.07
CheckBrackets() на Pascal