Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Форумы общей тематики » Программы (software) » Глупый Delphi че-то прячит, точнее наоборот.
новая тема  ответить следующая тема | предыдущая тема
Автор
  << < 1 2 3 > >>
sergr - offline sergr
Exclamation07-08-2001 15:07 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Глупый Delphi че-то прячит, точнее наоборот.

Написал прогу на Delphi, выключающую комп. Затем сравнил с такой же, причем начиненной картинкой, написанной братом на VB. И оказалось, что дельфинья в 10 раз длиннее!(она - 293376, а Basic'овская - 32768)
Толчка к обсуждению на ум не приходит, но...

Шмардак - offline Шмардак
Smile07-08-2001 19:07 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
шмардак



басиковская использует библиотеки VB, без которых работать не будет. Если ты перенесешь эту 30 кб прогу на другой комп (где нет нужных dll) - она не сработает. А дельфи - сработает.

А чтоб выключать комп, создай на рабстоле ярлык со след. содержанием:
C:\WINDOWS\RUNDLL32.EXE shell32.dll,SHExitWindowsEx 1

acidgames - offline acidgames
Smile07-08-2001 20:37 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад в Черном



А еще этот ярлык засунь в автозагрузку, чтобы все работало 100%.

Moonshade - offline Moonshade
Smile07-08-2001 23:00 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



sergr
Размер не показатель. Меряй сколько это занимает оперативной памяти. Просто в бинарник сделаный дельфей влинковано больше... В VB может быть и больше даже (наверняка) просто ты их не видишь, они подгружаются динамически, библиотеки сложены в кучу c библиотеками винды.

Xoro - offline Xoro
Smile15-08-2001 17:55 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



sergr
На дельфи можно тоже сварганить прогу весом в 30 кило если библиотечки не подключать!

Хоммер - offline Хоммер
Smile16-08-2001 14:41 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Ещё размер ехешника зависит от настроек компилятора. Релиз-версия может (хотя и не обязана) отличаться от дебаг-версии в разы. Вот такая вот плата за скорость компиляции.

Evga - offline Evga
Smile17-08-2001 10:40 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



И вообще, VC руль. Ну, хотя бы, gcc...

Хоммер - offline Хоммер
Smile17-08-2001 13:45 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Хм, а у ВЦ тоже дебаг-версия нехилых размеров бывает, чуть не в 10 раз больше релизной.

Rustam - offline Rustam
21-08-2001 02:17 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



sergr
Вот откопал:
------------------------------------------------------------------------------
{$A+,B-,D-,F-,G+,I-,K-,L-,N-,P-,Q-,R-,S-,T-,V-,W-,X+,Y-}
{$M 32768,0}
uses WinTypes, WinProcs;
begin
MessageBox(GetActiveWindow, 'Вася, это ты?', 'Dr.Bob',
MB_ICONINFORMATION OR MB_OK)
end.
------------------------------------------------------------------------------
Программа генерирует .EXE-файл размером менее чем 2Кб (1176 байт с моей специальной конфигурацией)...
Copyright - Dr. Bob (drbob@pi.net)

Evga - offline Evga
21-08-2001 10:20 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Rustam
Еще пару байт сэкономь - первый параметр в MessageBox может быть NULL.

Хоммер
Хм, а у ВЦ тоже дебаг-версия нехилых размеров бывает, чуть не в 10 раз больше релизной.

И раза в 3-5 тормознутее. Как я матерился, после нескольких часов отладки и оптимизации, что мой длинющий цикл тормозил исключительно из-за дебаг-версии... (было на P166)

Jameson - offline Jameson
22-08-2001 13:20 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Мало делающие проги на дельфи будут все столько занимать если использовать VCL. А если CLX, то еще надо будет тащить файло на 4 мега.. Должен сказать, что в дельфи дебаг версия не намного медленнее релиза, если не включать в дебаг Range checking.. А на размер влияет только отладочная информация для внешнего отладчика. Хотя в первой дельфи чуть-чуть была больше прога с информацией для встроенного!
А вот по размеру - поищи что-то вроде vbrun*.dll, и посмотри, сколько на самом деле занимает базиковская прога..

Evga - offline Evga
22-08-2001 22:17 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Jameson Маленькая проблема с Делфи - мало у кого стоит ее ран-тайм. Васиковская ран-тайм стоит практически у всех.
Вон - на Сях прога занимает 20 кил - не будем же мы считать размеры kernel32.dll, gdi.dll, user32.dll и другие.
Так что прога на делфи с поддержкой БД весит 2-3 дискеты Что есть большой суксь...

Moonshade - offline Moonshade
23-08-2001 06:08 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Evga
И раза в 3-5 тормознутее.
А чего ты ожидал? Она же не оптимизируется. Оптимизация отключена в дебаг версии обычно.

Jameson
...что в дельфи дебаг версия не намного медленнее релиза, если не включать в дебаг Range checking...
Т.е. в Дельфи что есть оптимизация, что нет ее разницы никакой (т.к. оптимизация никакая)... Зато компилится быстро.

Moonshade - offline Moonshade
23-08-2001 06:10 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Размер дебаг версии вообще не имеет значения, т.к. он необходим только для внутреннего пользования (собственно для отладки). И это не плата за скорость компиляции, это просто много дебаговой информации.

Jameson - offline Jameson
23-08-2001 06:24 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



а ОПТИМИЗАЦИЯ ТАМ НЕ ПО РАЗМЕРУ, А ПО скорости. Разницы не заметно, т.к. библиотека с оптимизацие скомпилирована. А может, просто оптимизация на самом деле не выключается. А так - она есть, достаточно на код посмотреть.

А для тех, кто в танке, рантайм дельфи входит в ехе-файл, причем не весь, а только те подпрограммы и классы, на которые есть ссылки. А компиляция табличным компилятором всегда быстрая. Кстати, BCB тоже быстро компилит, только вот заголовки.
EVGA - а сколько весит прога с бд на сях? Не надо. Кроме того, есть еще DBEXpress.
VBrun тоже не всегда есть. Некоторые программеры про это забывают и не включают его в дистрибутив. Тоже можно сказать и про MFC**.dll, как я материл одного таварища, у меня на машине была более новая версия, чем требовала его прога. Хорошо, догадался скопировать и переименовать..

Moonshade - offline Moonshade
23-08-2001 14:21 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Jameson
а ОПТИМИЗАЦИЯ ТАМ НЕ ПО РАЗМЕРУ, А ПО скорости.
И что? Это к чему? Тааак... Помедитируй над собственным сообщением: что в дельфи дебаг версия не намного медленнее релиза...
Причем тут оптимизация по размеру? То что по скорости дебаг и релиз не различаются - наводит на мысли по поводу серьезности дельфевого оптимизатора (если код не какой-нибудь неоптимизируемый, конечно)... Ну а если оптимизация включена в дебаг версии, то это еще более странно.

EVGA - а сколько весит прога с бд на сях? Не надо.
Надо. Например, если делать на ODBC то очень мало, либы не в счет, т.к. идут вместе с Виндами.

KUKkamrad - offline KUKkamrad
Exclamation25-08-2001 08:34 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



...зачем пользоваться делфой, и хотеть оптимизировать код? Это совершенно разные вещи.

Delphi - инструмент прежде всего. Инструмент быстрой разработки программ. Если оставаться на уровне панелек/кнопочек, то и думать можно забыть о применении Delphi. Почему бы не использовать VC ? Кроме того, Delphi и стоит дороже.

Весь разговор веду к тому, что с помощью Delphi можно ОЧЕНЬ быстро разрабатывать проекты, на которые в VC потратится в несколько раз больше времени.
Представьте, что ВЫ - заказчик программного обеспечения. Представьте - неужели заказчика интересует сколько дискет займёт программа?
Заказчика интересует - сроки и корректность программ.

---
Теперь камень в сторону "оптимизации"... вот если писать нейросетевые алгоритмы, которые очень ресурсоемки и требовательны к процессорным мощностям, вот тогда стоит говорить об оптимизации. А если оптимизацию кода призывать на службу уменьшения размера программы - бред.

---
Кстати, последне относится не только к Delphi...

Moonshade - offline Moonshade
26-08-2001 00:38 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



KUKkamrad
Весь разговор веду к тому, что с помощью Delphi можно ОЧЕНЬ быстро разрабатывать проекты, на которые в VC потратится в несколько раз больше времени.
Не факт. В VC тоже есть инструментарий на построению гуев и т.п. В Дельфи по началу "въехать" быстрее - может быть.

Представьте - неужели заказчика интересует сколько дискет займёт программа?
Разумеется, нет.
Разговор, кстати, был не о полезности минимизации объема. Размер бинарника, разумеется, чаще всего не имеет значения...

Evga - offline Evga
26-08-2001 15:10 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Moonshade
Надо. Например, если делать на ODBC то очень мало, либы не в счет, т.к. идут вместе с Виндами.

Прравильно
Если стоит офис - все остальные рантаймы тоже уже есть. А это большая часть офисных десктопов, а у нас - и домашних.

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

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

Т.е. в Дельфи что есть оптимизация, что нет ее разницы никакой (т.к. оптимизация никакая)...

Маленький факт - прогу на Делфи можно декомпилировать. На VC - нет. Так что никакой оптимизацией там и не пахнет.

KUKkamrad
Весь разговор веду к тому, что с помощью Delphi можно ОЧЕНЬ быстро разрабатывать проекты, на которые в VC потратится в несколько раз больше времени.

Как я себя материл, что один проект решил писать на Делфях... Заморочки были с деплойментом, когда постановка задачи поменялась, документ-вид пришлось самому выписывать. Опыт показывает - Делфи ускоряет на inception/elaboration а все беспощадно затормаживает на стадии construction/transition...

Т.е. я хочу сказать - показать клиенту форму с кнопочками - это на Делфи быстро. Сделать проект, пробиваясь сквозь баги VCL весьма трудно... На VC с несравненно более качественной MFC и нормальным каркасом сделать качественное приложение легче. Да и ActiveX все же больше чем Делфийских компонент.
Делфи - суксь... Ява на порядок лучше.

Представьте - неужели заказчика интересует сколько дискет займёт программа?

Заказчика - весьма. Сейчас CD-Rы конечно с этим послабили, но когда заказчик видит, что 3 формочки занимают столько же сколько и 1C...

Теперь камень в сторону "оптимизации"... вот если писать нейросетевые алгоритмы, которые очень ресурсоемки и требовательны к процессорным мощностям, вот тогда стоит говорить об оптимизации. А если оптимизацию кода призывать на службу уменьшения размера программы - бред.

Оптимизация нужна везде. Если каждая програмка чуть-чуть не оптимизирована отом все начинают вопить, что это "Винда тормозит"

KUKkamrad - offline KUKkamrad
26-08-2001 23:31 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Про оптимизацию: её вообще лучше не включать, или посмотрите как работают с нею такие кусочки:
for i := 0 to 10 do ;
for i := 10 downto 0 do ;

%)

Evga
Весь вопрос только в опыте работы с той или иной системой.
1. Delphi - не язык. Это среда разработки, поэтому Ваши проблемы с VCL не относятся к данному вопросы. Если отлично пользуетесь Object Pascal, сомневаюсь, что Вам придётся выбирать на чём писать тот или иной проект.
2. размер трёх форм: Вы были хоть раз заказчиком? Если нет... разговор продолжать безсмыслено.
3. оптимизация: бывает, что на тот или иной проект бросаются все ресурсы команды. Если Вы будете оптимизировать программу, чтобы счётчики крутились не
for i := 0 to 10 do ;
а
for i := 10 downto 0 do ;
...вроде как loop уменьшает cx, а не увеличивает

и при этом сорвёте срок разработки какого-нибудь блока в командной разработке, то оправдаться, что Винда будет работать быстрее не сможете

Jameson - offline Jameson
27-08-2001 08:28 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Ну-ну, покажите мне декомпилятор Дельфи.. А оптимизация качественная. Иначе не было бы, как в одной таблице журнала МИР ПК, где дельфи 2 в 2,5 раза почти огоняла дельфи 1 по быстродействию программы, и во столько-же тогдашний VC. Программа на дельфи 1, естественно, 16 разрядная. Но размер данных не давал преимуществ 32разрядной.
Номер бы вспомнить, там вообще-то про Кларион рассказывалось. Это я к тому, что прога на Кларион был таки быстрее проги на 1 дельфи...
А быстрее всех - был Borland C++ 5.0 - немного обгонял 2 дельфи в быстродействии прог.

А что прога сильно не отличается - во-первых, я специально не тестил.
Start := Stop + 1;
00465C51 8D7301 lea esi,[ebx+$01]

без оптимизации - так
00465C9F 8B45F0 mov eax,[ebp-$10]
00465CA2 40 inc eax
00465CA3 8945F4 mov [ebp-$0c],eax

start используется для индексирования. Пример Telnet из indy

там-же
Start := Start + 1; - и не надо спецкоманд типа Start++
00465C6A 46 inc esi переменная в регистре

без оптимизации -
00465CC0 FF45F4 inc dword ptr [ebp-$0c] в памяти.

А вы говорите, нет оптимизации!
Там много чего такого. И параметры через регистры в подпрограммы и прочее.
а по размеру не отличаются!

488448кб! и оптимизированный и неоптимизированный!?!

3=1 получается..

Evga - offline Evga
27-08-2001 14:37 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



KUKkamrad
Вы были хоть раз заказчиком? Если нет... разговор продолжать безсмыслено.

Я был подрядчиком у "умного" заказчика.

Moonshade - offline Moonshade
28-08-2001 00:23 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Jameson
А вы говорите, нет оптимизации!
Не говорили. Говорили, что неважная...
Счетчики в регистрах держать - не великая оптимизация, imo. Я, по крайней мере, не встречал компилятора, который этого не делал.

а по размеру не отличаются!
Бывает. Наверное, из-за выравнивания в PE.

Jameson - offline Jameson
28-08-2001 04:26 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Догда почему скоросто выше в 2.5 раза, если не великая? Во-первых, команд меньше, во-вторых, регистры используются.

Evga - offline Evga
28-08-2001 10:45 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Jameson
Во-первых, команд меньше,

Размер - команд меньше - и скорость. Невозможно сразу по двум параметрам оптимизировать...

регистры используются

Ух ты! Заслуга Борланда Вообщето я подозреваю, если бы они без этого могли обойтись, они бы обошлись

Общепризнано (конференции relcom, масса интернет-форумов) что лучший оптимизирующий компайлер под I32 - VC6.0. Он умеет оптимизировать не только до "использования регистров" но и до оптимальной работы Pentium/Pentium Pro. со всей их архитектурой (я говорю про конвейеры, предсказания переходов и прочия). Делфи/C-Builder - они просто компилировать умеют

Текущее время: 15:31 << < 1 2 3 > >>
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru