Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размер приложения XE2, увеличился в 5 раз ? 
:(
    Опции темы
StayAtHome
Дата 4.6.2012, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Пытаюсь скомпилировать свою старую DLL (плагин к Total Commander) в 64разрядный вариант. Для этого попробовал Embarcadero Rad Studio XE2. Размер при компиляции в Delphi 7 ~570 КБ, при компиляции в XE2 -- 2,4 МБ ! Это "нормально" или я где-то перемудрил? Если не нормально, то куда копать?
PM MAIL WWW ICQ YIM   Вверх
DarkProg
Дата 4.6.2012, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 4
Всего: 19



Не знаю что за плагин, но IMHO много, хотя если вы подключили много базовых библиотек, которые потянули за собой чёрти сколько всего, то размерчик адекватен.

А делали полный билд в режиме релиза?


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
StayAtHome
Дата 4.6.2012, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Делал. Разница не заметна особо. Особо ничего не подключал, сторонние библиотеки не юзал -- 1 свой компонент и все.
PM MAIL WWW ICQ YIM   Вверх
XperT
Дата 4.6.2012, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.8.2006

Репутация: нет
Всего: 4



Покажите uses длл-ки и своего компонента
PM MAIL   Вверх
Keeper89
Дата 4.6.2012, 22:04 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2578
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Пути - почистить Uses (CnPack это умеет, например) и сжать UPXом.


--------------------
PM MAIL WWW   Вверх
StayAtHome
Дата 4.6.2012, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Цитата(XperT @  4.6.2012,  21:55 Найти цитируемый пост)
Покажите uses длл-ки и своего компонента 

Код

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Menus;

uses SysUtils,  Windows,  Messages,  Forms;

uses Windows, Messages, SysUtils, Classes, Controls, Forms;

uses Windows, Classes, Controls, Forms,  StdCtrls, ExtCtrls, Spin, XPMan;

uses IniFiles, Graphics;

uses Types, Classes, Messages, Controls, StdCtrls;

uses  Windows, Forms, StrUtils, ClipBrd, Graphics;


PM MAIL WWW ICQ YIM   Вверх
StayAtHome
Дата 4.6.2012, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



CNPack мало что почистил из Uses -- размер не изменился 
PM MAIL WWW ICQ YIM   Вверх
XperT
Дата 4.6.2012, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.8.2006

Репутация: нет
Всего: 4



Зачем в дллке Forms,  Dialogs, Messages, XPMan? А так же сомнительна необходимость ClipBrd.

Скомпилировал пустой проект под делфи 2010 (это так, которая уже с юникодом) используя все эти uses и получил 805 Кб. К сожалению ХЕ2 под рукой нету, но мне кажется, что больше 1,5 Мб быть не должно.
PM MAIL   Вверх
northener
Дата 5.6.2012, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(XperT @  4.6.2012,  22:55 Найти цитируемый пост)
Скомпилировал пустой проект под делфи 2010 (это так, которая уже с юникодом)

А надо было по крайней мере под ХЕ, имхо.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
bems
Дата 5.6.2012, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3399
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Keeper89, пакеры не нужны


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Keeper89
Дата 5.6.2012, 03:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2578
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



bems, почему?


--------------------
PM MAIL WWW   Вверх
StayAtHome
Дата 5.6.2012, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Цитата
Зачем в дллке Forms,  Dialogs, Messages, XPMan? А так же сомнительна необходимость ClipBrd.

Это ж не просто DLL-ка, а плагин для TC. Он отображает свою форму с контролами. 
PM MAIL WWW ICQ YIM   Вверх
Snowy
Дата 5.6.2012, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11351
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 483



Цитата(StayAtHome @  4.6.2012,  20:57 Найти цитируемый пост)
при компиляции в XE2 -- 2,4 МБ ! Это "нормально" или я где-то перемудрил?
Это нормально, если используется VCL.
Forms нынче довольно пухленький.
PM MAIL   Вверх
StayAtHome
Дата 5.6.2012, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Цитата

Это нормально, если используется VCL.
Forms нынче довольно пухленький. 

Печально. Есть какие-то способы борьбы с этим, кроме как переход на чистый WinAPI ? В упаковке -- особого смысла не вижу.
Или можно получить 64-разрядную DLL на менее "пухлых" версиях Delphi ?

Это сообщение отредактировал(а) StayAtHome - 5.6.2012, 13:55
PM MAIL WWW ICQ YIM   Вверх
Keeper89
Дата 5.6.2012, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2578
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



StayAtHome, нет, нельзя. А почему размер так критичен? И почему упаковать - не вариант?


--------------------
PM MAIL WWW   Вверх
StayAtHome
Дата 5.6.2012, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Keeper89, критична скорость загрузки плагина, считаю что грузить 2,5 МБ будет дольше чем 0, 5 МБ. Да, поскольку это DLL вероятно повторный вызов будет уже без посторной загрузки (вероятно т.к. не сильно искушен в архитектуре TC). Но такой рост размера меня лично сильно шокирует smile Аж охота пользоваться XE2 пропала.
Упаковать -- выиграем в размере, проиграем в скорости распаковки. Смысл? 
PM MAIL WWW ICQ YIM   Вверх
Alexeis
Дата 5.6.2012, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11740
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(StayAtHome @  5.6.2012,  15:25 Найти цитируемый пост)
Keeper89, критична скорость загрузки плагина, считаю что грузить 2,5 МБ будет дольше чем 0, 5 МБ.

  Не факт. Винда обычно грузит только то что ей нужно. Обычно делфовый экзешник набивается под завязку всяким лутом типа RTTI или ресурсов. Если сходу не грузить все формы в память, то загрузка будет столь же быстрой как и раньше.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 5.6.2012, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11351
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 483



dll может быть и 300 метров - в память он грузиться целиком не станет.
Вот если он упакован пакером, тогда станет.
Так что не думаю, что размер критичен. Если его заархивировать, то получится всего полметра.
Для инета не критично. Для винта вообще не заметно.
Я бы не заморачивался бы на эту тему.
PM MAIL   Вверх
Alexeis
Дата 5.6.2012, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11740
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Вот кстати одна из причин роста монстраобразности исполняемых модулей
Код

// Без рефлексии
var
  foo : TFoo;
begin
  foo := TFoo.Create();
  foo.Hello();
end;
 
// С рефлексией
var
 c : TRttiContext;
 t : TRttiInstanceType;
 foo : TValue;
begin
   c := TRttiContext.Create;
   t := (c.FindType('TFoo') as TRttiInstanceType);
   foo := t.GetMethod('Create').Invoke(t.MetaclassType,[]);
   t.GetMethod('Hello').Invoke(foo,[]);
   c.Free;
end.
//сперто http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29#Delphi_2010



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MetalFan
Дата 5.6.2012, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Alexeis, ухты...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
northener
Дата 6.6.2012, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(MetalFan @  5.6.2012,  22:08 Найти цитируемый пост)
ухты... 

А чему удивляемся? smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
MetalFan
Дата 6.6.2012, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



northener, да я просто сам таким не пользуюсь... примеры видел, но видать забыл уже, что такое возможно.
А практическое применение такому где может быть?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
bems
Дата 6.6.2012, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3399
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(Keeper89 @  5.6.2012,  03:08 Найти цитируемый пост)
bems, почему? 

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

Это сообщение отредактировал(а) bems - 6.6.2012, 08:46


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Alexeis
Дата 6.6.2012, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11740
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(MetalFan @  6.6.2012,  08:18 Найти цитируемый пост)
А практическое применение такому где может быть? 

  Ну одно из применений может быть в купе с компилятором делфей. Самомодифицирующаяся программа. Внутри программы создал код bpl, загрзузил и заюзал, то что только что написал. 
  Можно также представить себе сиситему плагинов, где в xml файле будет описано содержимое плагина (классы и функции), а также несколько вариантов конфигураций, в виде возможных значений параметров (кстати о плагинах). В любом случае это неплохая альтернатива COM. 
  Еще неплохой пример. Браузер грузит html страничку, находит тег embed / object и используя метаинформацию из него определяет кто должен рендерить содержимое и какие данные нужно передать объекту для правильной работы. 
  Вспоминаем типичную схему разработки классов на COM. Написали класс, к нему максимально полный интерфейс. Через пару месяцев возникла необходимость расширить его. Что делаем? Пишем новый дополняющий старый. Потом 3й, 4й 5й и получаем форменное безобразие. С другой стороны далеко не всегда позднее связывание требует максимального быстродействия. Можно сочетать интерфейсы с рефлексией. Например, там где требуется максимальное быстродействие используем COM интерфейсы, которые получаем из объектов, которые были созданы и связаны с основной программой по их строковому описанию.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Google
  Дата 18.6.2019, 13:41 (ссылка)  





  Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.