Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.09.07;
Скачать: [xml.tar.bz2];

Вниз

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]


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


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


 
картман ©   (2014-02-02 01:04) [41]


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

возможно, но я считаю иначе


 
Ega23 ©   (2014-02-02 01:16) [42]


> возможно, но я считаю иначе


Ненаказуемо.


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


> Я сбросил 20ку за месяца 4, может 5

сколько с тех пор прошло? Результат сохранился?


 
Пит   (2014-02-02 02:17) [44]

Насчет качества кода.

Мне в одной книжке понравилось и я по большей части согласен. Если вкратце, то пара постулатов:

1) качество кода, нужное "рынку" обычно ниже, чем "внутреннее" качество кода данного конкретного программиста.

При этом, если качество кода ниже нужного на рынке - продукт просто не найдет покупателя, фигня получится. Идеальная ситуация - когда качество соответствует требуемому, но это идеал и он почти недостижим, будет или ниже, или выше - это гораздо более вероятная ситуация. Но даже если качество соответствует, то программист как единица растет гораздо быстрее среднего рынка и очень скоро его понятие качественного кода превысит потребности рынка. Поэтому, по сути, в любом успешном проекте качество (а значит ресурсы) на разработку превышают минимально необходимые, что в общем то естественно. Есть и должен быть некий оверскилл, минимизация его - и есть задача минимизации ресурсов, но он неизбежен.

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


 
картман ©   (2014-02-02 02:24) [45]

у меня, у меня есть результат: за год научился не толстеть дальше))


 
Пит   (2014-02-02 02:36) [46]

Это ты просто к столовой в офисе не привык, стесняешься. Как начнешь двойные порции брать - все опять попрет ;)


 
DevilDevil ©   (2014-02-02 03:11) [47]

> Пит   (02.02.14 02:00) [43]

Прошло месяцев 5
4.5кг плюс
но это потому что питаюсь неправильно и по многу :)

> Пит   (02.02.14 02:17) [44]
> Насчет качества кода.


достойно
полемика то вообще не об этом была
я говорил, что меня раздражает время компиляции/линковки/запуска в новых версиях Delphi при всё том же низком качестве бинарного кода.


 
antonn ©   (2014-02-02 13:12) [48]


> Ega23 ©   (01.02.14 23:15) [30]
>
>
> > Опять началась гонка за уменьшение ехе-файлов... :) Счас
> > начнут пакеры советовать ;)
>
>
> А чё, для планшетной индустрии сейчас в целом актуально.
>

это для какой Win? На CE, вроде как, особо не было проблем (точнее там всегда нам не хватало ни флеша, ни оперативки). На андроиде при 1Гб оперативки приложению выделяется 55мб (а обычно и того меньше), и занимать ее еще пакером очень не хочется...

кстати, а как на дельфи это разруливается под андроидом? на сколько сильно отъедается память доступная приложению?


 
TohaNik ©   (2014-02-02 13:32) [49]

> Пит   (02.02.14 02:17) [44]

С два согласен.

А так, ну говнокод(?), так работает, причем правильно...
а придет , условно, Пит... , ву а ля, нет говнокода, чепчики вверх и все друг друга любят :) ... и нужно доделывать говнокод...


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


> Пит   (02.02.14 02:36) [46]


> двойные порции

кстати, да, надо попробовать))


 
Inovet ©   (2014-02-02 17:15) [51]

> [46] Пит   (02.02.14 02:36)
> Как начнешь двойные порции брать — все опять попрет ;)

Это таки бесплатно?


 
DVM ©   (2014-02-02 19:18) [52]


> На андроиде при 1Гб оперативки приложению выделяется 55мб
> (а обычно и того меньше), и занимать ее еще пакером очень
> не хочется...
>
> кстати, а как на дельфи это разруливается под андроидом?
>  на сколько сильно отъедается память доступная приложению?
>

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


 
antonn ©   (2014-02-02 19:24) [53]


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

хм, вот этого не знал и не узнавал, как-то начал с явы, там изначально сразу говорилось про ~24мб (в ранних андроидах).


 
Дмитрий Белькевич   (2014-02-03 01:56) [54]

Для андроида мальнький размер имеет значение. Т.к. часто приложения тянутся по лимитному по траффику каналу по воздуху.



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

Форум: "Прочее";
Текущий архив: 2014.09.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.002 c
3-1299005241
moker
2011-03-01 21:47
2014.09.07
IBDatabase и FireBird


15-1391468915
Кузьмич
2014-02-04 03:08
2014.09.07
Ищу табличку!


2-1381759445
Алла
2013-10-14 18:04
2014.09.07
Событие OnChange


2-1381493223
Старик Хотабыч
2013-10-11 16:07
2014.09.07
Z-Index Control ов


2-1381517161
martinov2014
2013-10-11 22:46
2014.09.07
Adoconnection





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский