Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Открыть новую тему     Написать ответ в эту тему

Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Экзешник в ХЕ2 в 1.5 раза меньше, солидно, ничего не скажешь)
Если для своей проги это пофиг, то для dll-плагинов, которые я пишу для RnQ (маленькая ася!), это ппц. Они по 3 метра получаются, да вся RnQ без UPX весит 5

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 21:53 17-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikanoshi
RnQ - это мой любимый ICQ-клиент. По-моему, это лучший клиент в своем роде. Сам exe-файл R&Q весит 1,05 Мб.
 
Полностью согласен по поводу увеличения объема exe-шника.
 
Вот в MS Office с новым форматом docx, xlsx и т.д. размер файла стал меньше, чем doc, xls и др. И это показатель, на мой взгляд.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 22:07 17-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Сам exe-файл R&Q весит 1,05 Мб.

Без UPX 3.6, а 64-бит версия, скомпилированная в новых делфях, уже почти 6 метров) Прогресс, ничего не скажешь. Такими темпами слоган придётся менять на "аська средненького размера " ^_^

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 22:25 17-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Честно говоря, мне не очень понятно, зачем R&Q 64-бит версия. Ясное дело, что из-за этого еще больше размер становится.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 22:52 17-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну 21 век, скоро всё будет 64-битное, так что всё равно придётся. Я сам на 32 сижу, т.к. 64 глючная и есть версия только R&Q Multi (OBIMP + MRA + XMPP), а мне эти протоколы нафиг не нужны.
 
И конечно плагины, я свои смогу переписать, но другие уже заброшены и никто их не переделает, только если писать для них 32-битную OOP обёртку. Мне же главным образом от 64 версии нужен интерфейс, т.к. у меня шелл bbClean x64 вместо explorer.exe, и скины он применяет только на 64-битные приложения))

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 00:39 18-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ну 21 век, скоро всё будет 64-битное, так что всё равно придётся.

Скоро - понятие относительное. 64-битный компилятор не так давно появился, особенно в С++ Builder.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 01:19 18-08-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Непонятно зачем RTTI теперь неубирающийся сделали

WEAKLINKRTTI .  
 
Добавлено:

Цитата:
скоро всё будет 64-битное

а зачем? Работа 32-разрядном режиме поддерживается аппаратно. И будет поддерживаться еще очень долго(10лет минимум)
 
32-разрядное приложение кушает меньше ресурсов. Более того, оно не способно, без специальных хаков, забрать у системы больше 2гб памяти, даже если "протекает". Плюс, дельфи приложения, как говорят, работают 32-разрядном режиме быстрее(это неверно для тяжерой FP арифметики)
 
---
кстати, кто нибудь замерял скорость integer vs NativeInt арифметики в 64-разрядном режиме? Особенно если не слишком нажимать на тяжелые операции вроде IDIV(тут, ежу понятно, 32 разрядные целые шустрее)

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 01:24 18-08-2013 | Исправлено: AlekXL, 01:36 18-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
WEAKLINKRTTI

Да я даже больше скажу)

Код:
{$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

 
Это не помогает, удаляется только доп. RTTI, а не всё.
 

Цитата:
32-разрядное приложение кушает меньше ресурсов

Это как посмотреть, 32 приложение под WOW64 потребляет больше памяти и работает незначительно медленнее:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384219(v=vs.85).aspx
 
С флагом до 4 гигов кстати может адресовать)
 

Цитата:
Плюс, дельфи приложения, как говорят, работают 32-разрядном режиме быстрее

Скорее всего из-за отстутствия FastCode для 64-бит, но там ассемблер, это и понятно.

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 02:04 18-08-2013 | Исправлено: Mikanoshi, 02:07 18-08-2013
ValidolX

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
И будет поддерживаться еще очень долго(10лет минимум)

ой ли, сегодня если попадется PE NE то одно на сотню, вполне вероятно что скорее

Всего записей: 1710 | Зарегистр. 22-07-2001 | Отправлено: 09:52 18-08-2013
LGTeam

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
есть ли у кого переделанная DSpack под XE4  64 бита?

Всего записей: 46 | Зарегистр. 20-12-2012 | Отправлено: 11:02 18-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
И будет поддерживаться еще очень долго(10лет минимум)  

Тоже так считаю. 64-бит нужно для программ, которым нужны большие ресурсы памяти.
Вот, например, выше приведенной аське R&Q ну никак не нужны большие ресурсы. Да и куче других программ тоже.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 11:16 18-08-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikanoshi

Цитата:
Это не помогает, удаляется только доп. RTTI, а не всё.

Пересобери RTL изменив в system.pas Default RTTI settings

Всего записей: 290 | Зарегистр. 30-11-2011 | Отправлено: 11:54 18-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Пересобери RTL изменив в system.pas Default RTTI settings

Ты пробовал так сделать? Я убрал строки

Код:
  {$RTTI INHERIT
      METHODS(DefaultMethodRttiVisibility)
      FIELDS(DefaultFieldRttiVisibility)
      PROPERTIES(DefaultPropertyRttiVisibility)}

и осталось там только

Код:
  {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}

Размер уменьшился на 14кб)) System.Rtti всё равно добавляется в экзе. Он прописан в System.Classes и System.TypInfo, короче переписывать чтоли сорцы делфи из-за этого все?)

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 14:38 18-08-2013 | Исправлено: Mikanoshi, 14:44 18-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
TypInfo, короче переписывать чтоли сорцы делфи из-за этого все?)

Всего-навсего.
Либо использовать более раннюю версию студии, если так важен небольшой размер файла.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 14:55 18-08-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikanoshi

Цитата:
System.Rtti всё равно добавляется в экзе

А ты уверен, что пересобрал RTL? Сам по себе этот модуль не разувает экзешник. Экзешки пухнут от того, что компилятор сует туда RTTI. А в system.rtti.pas всего лишь обертки для удобного использования этих данных, доступ к которым можно получить и без system.rtti.pas через system.typinfo.pas

Всего записей: 290 | Зарегистр. 30-11-2011 | Отправлено: 16:26 18-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
valgreesh
Удалил System.dcu и перекомпилил вместе с SysInit.pas, именно System.Rtti и раздувает exe, в .map видно:
 
 
Даже в ресурсах в RCData/PACKAGEINFO прописано:

Цитата:
Package Info (Delphi or C++ Builder)
PackageInfo: 0x8C100000
Flags:        
Type:        library
Compiler:    produced with Delphi 4 or higher
 
Contained Units:
  ...
  System.Rtti [ImplicitUnit]
  ...

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 16:59 18-08-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это как посмотреть, 32 приложение под WOW64 потребляет больше памяти и работает незначительно медленнее:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384219(v=vs.85).aspx

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

Цитата:
Это не помогает, удаляется только доп. RTTI, а не всё.  
блин, напиши стоящее, востребованное приложение, и никто не посмотрит на его размер. Кому сейчас интересен размер Firefox, Chrome , Opera, IE? Сравнивают их по другим совершенно параметрам.
 
Добавлено:

Цитата:
Пересобери RTL изменив в system.pas Default RTTI settings

это опасная операция. dcu и исходники RTL нередко не соответсвуют полностью.

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 17:18 18-08-2013 | Исправлено: AlekXL, 17:20 18-08-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikanoshi

Цитата:
Удалил System.dcu и перекомпилил вместе с SysInit.pas

Это все что угодно, тольно не перекомпиляция rtl. Давай по шагам что делал.
 

Цитата:
 именно System.Rtti и раздувает exe, в .map видно

Я пересобрал rtl Delphi XE4 с отключением rtti. Размер дефолтного VCL проекта с одной формой и в режиме сборки release уменьшился с 2 325 504 байт до 1 233 920 байт. И судя по *.map файлу размер system.rtti.pas там всего 208 байт.
 
AlekXL

Цитата:
это опасная операция. dcu и исходники RTL нередко не соответсвуют полностью.

Ничего опасного, пересобирай без замещения и всех делов.

Всего записей: 290 | Зарегистр. 30-11-2011 | Отправлено: 17:40 18-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
блин, напиши стоящее, востребованное приложение, и никто не посмотрит на его размер. Кому сейчас интересен размер Firefox, Chrome , Opera, IE? Сравнивают их по другим совершенно параметрам.

Выше было написано зачем маленький размер.

Цитата:
Это все что угодно, тольно не перекомпиляция rtl. Давай по шагам что делал.

Напиши мне что поменять в сорце, а я уж перекомпилю, там есть cmd даже для этого. Я просто один System.pas скомпилировал.

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 19:01 18-08-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikanoshi

Цитата:
Напиши мне что поменять в сорце, а я уж перекомпилю, там есть cmd даже для этого

В system.pas отключаешь дефолтные настройки RTTI и включаешь минимальные. Там по комментариям все понятно. Потом собираешь rtl тем самым батником или открыв пакет buildWinRtl. dcu'хи новой rtl падают в \общие документы\RAD Studio\lib\win\[release|debug]. Потом в своем проекте в путях поиска прописываешь этот самый путь с новой rtl. Если проект тянет за собой еще и vlc, в пути поиска прописываешь путь к исходникам vcl - она тоже должна будет пересобраться. Не забывать, что настройки для release и debug разные. Чтобы быть уверенным, что ты собираешь проект со своей измененной rtl, вsystem.pas можно добавить какую-нибудь глобальную функцию, а в своем проекты попробовать её вызвать - если проект соберется, значит rtl твоя.
 

Цитата:
Я просто один System.pas скомпилировал.

Мне конечно пофиг, но как у тебя потом проект собрался с одной измененной dcu'шкой? Изменение system.pas влечет за собой перекомпиляцию вообще всего, что используется в проекте.

Всего записей: 290 | Зарегистр. 30-11-2011 | Отправлено: 19:35 18-08-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru