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

Вниз

Почему код D больше чем код C++   Найти похожие ветки 

 
To day   (2004-11-04 22:24) [0]

450kb против 40kb одна пустая форма.
Почему делфи генерит такой большой код, а C++ такой маленький?
Почему дельфовый компилер не зделать так, что бы результат был не таким тяжелым?


 
DrPass ©   (2004-11-04 22:26) [1]

Убери галочку Build with run-time packages. Будет как в С++


 
DrPass ©   (2004-11-04 22:26) [2]

Поставь галочку Build with run-time packages. Будет как в С++


 
vuk ©   (2004-11-04 22:27) [3]

Надо галку "Build with runtime packages" в билдере снять. Или наоборот - в Delphi поставить. Будет поровну.


 
To day   (2004-11-04 22:33) [4]

Вот хороший учебник по С++
http://anatolix.naumen.ru/bcbbooks.htm Если кто качать будет поделитесь впечатлениями о книге. Сам бы скачал, но трафик жалко все таки 15метров.

Э-э-э нет тут Build with run-time packages делу не поможешь.


 
vuk ©   (2004-11-04 22:38) [5]

>Э-э-э нет тут Build with run-time packages делу не поможешь.
Помогает. Проверено. Или хотите Holy War? А вот не будет. :-P


 
Поручик ©   (2004-11-04 22:40) [6]

http://anatolix.naumen.ru/
Помню скачал пару книжек с этого сайта (Липпмана и еще чего-то), больше не скачивал: из 10 слов 3 написанны без ошибок.


 
Игорь Шевченко ©   (2004-11-04 22:45) [7]

vuk ©   (04.11.04 22:38) [5]

Там (в C++ Builder) еще одна гайка есть - use dynamic RTL, по-моему.


 
vuk ©   (2004-11-04 22:46) [8]

А это случаем не к CPP-шному рантайму относится?


 
Юрий Зотов ©   (2004-11-04 22:48) [9]

> To day   (04.11.04 22:24)  

> Почему делфи генерит такой большой код, а C++ такой маленький?

Потому что C использует run-time библиотеки, которые гарантированно есть на любой машине, где стоит Windows (вместе с ней и ставятся). Значит, код этих библиотек можно не добавлять в саму программу и она получается маленькой.

Delphi тоже может использовать подобные библиотеки (run-time пакеты) и тогда код самой программы тоже будет маленьким. Но, поскольку нет гарантии, что на всех машинах эти библиотеки имеются (ведь они не устанавливаются вместе с самой системой), их придется распространять вместе с программой. Либо нужно компилировать программу так, чтобы она обходилась вообще без всяких пакетов - но тогда весь код компилируется в саму программу и она получается большой.

> Почему дельфовый компилер не зделать так, что бы результат был
> не таким тяжелым?

Он так и сделан. Вы можете написать хоть сто программ с run-time пакетами и все они будут маленькими, а набор пакетов будет один на все сто программ. Общий для всех.


 
Игорь Шевченко ©   (2004-11-04 22:52) [10]

vuk ©   (04.11.04 22:46) [8]

Да, к нему. Только не обязательно к CPP-шному, просто к С-шному тоже.

Юрий Зотов ©   (04.11.04 22:48) [9]

Нет, у C++ Builder"а свой рантайм (cc3250.dll), и к ms-овскому, насколько мне известно, он не относится.


 
GuAV ©   (2004-11-04 22:54) [11]

To day   (04.11.04 22:24)
что бы результат был не таким тяжелым?

IMHO, размер ещё не означает "тяжесть".

Пустая форма на VB занимает так что меньше не придумаешь, но вот не верю я что он во столько раз "легче" D.


 
vuk ©   (2004-11-04 22:57) [12]

to Игорь Шевченко ©   (04.11.04 22:52) [10]:
>Только не обязательно к CPP-шному, просто к С-шному тоже.
Ну в общем мы друг друга поняли. :o)


 
Юрий Зотов ©   (2004-11-04 23:01) [13]

> Игорь Шевченко ©   (04.11.04 22:52) [10]

А почему именно Builder? В вопросе о нем ни слова. Я так понял, что речь идет об MS.


 
Verg ©   (2004-11-04 23:08) [14]

Природу-то не обманешь. Хоть на C--, а поток должен выполнить вполне обоснованное количество инструкций данного процессора для достижения целей программиста. Но люди работают :) - я иногда фигею от кода для RISC-ов получаемых компиляцией gcc при O3, например. Там черт ногу сломит. Сам бы на асме до такого никогда бы не додумался. :) Отлаживать такой код после оптимизатора - бесполезно, там сам gdb стреляется и порет полную чушь.


 
Игорь Шевченко ©   (2004-11-04 23:11) [15]

Юрий Зотов ©   (04.11.04 23:01) [13]

Я, честно говоря, понял по http://anatolix.naumen.ru/bcbbooks.htm
Кроме того, в MS "одну пустую форму" сделать не так уж и тривиально для автора подобного вопроса.


 
To day   (2004-11-05 00:14) [16]

Извените конечно, я против вас ни чего не имею, но вот пример как нужно обсуждать темы касающиеся конкретных задач
http://www.progz.ru/forum/index.php?sid=4040dc64b86961d6e92394b4f518f273
Конкретно по сабжу
http://www.progz.ru/forum/viewtopic.php?t=3073


 
Игорь Шевченко ©   (2004-11-05 00:22) [17]

To day   (05.11.04 00:14) [16]


> но вот пример как нужно обсуждать темы касающиеся конкретных
> задач


Учить пословицу про монастырь и устав до полного просветления.

Не приводить примеры, касающиеся "написания серверной части трояна" на этом сайте.


 
To day   (2004-11-05 00:27) [18]

Игорь Шевченко ©  (04.11.04 23:11) [15]
Имел ввиду MS. Рабочий автономный exe = 40кило Delphi & builder = 300-500кило. либо exe маленький но bpl покроет экономию.+ bxx.dll


 
To day   (2004-11-05 00:32) [19]

Игорь Шевченко ©  (05.11.04 00:22) [17]
Хе. Да ни кто и не думал что здесь это можно обсудить. И что это показатель? Вернее что это должно означать? Что это сайт борцов за чистоту помыслов или что то другое? Не я просто не знаю что это может означать и не совсем понимаю смысл данного правила. Просветите плиз.


 
vuk ©   (2004-11-05 00:34) [20]

to To day   (05.11.04 00:27) [18]:
>Имел ввиду MS.
Ну тогда, конечно же, учли, что используются разные библиотеки, и поэтому сравнение некорректно? :o)


 
VEG ©   (2004-11-05 00:38) [21]


> To day   (05.11.04 00:14) [16]

В приведенной теме обсуждается программа на WinAPI.
В Delphi 7 на WinAPI со стандартной RTL получаются программы от 12кб.
В C++ Builder аналогичная программа со стандартной RTL будет иметь объем от 32кб. Для его, правда, я видел урезанную RTL, где получаются программы от 8кб., но это чревато потерей работоспособности некоторых встроенных не WinAPI системных функций.


 
To day   (2004-11-05 00:49) [22]

Спасибо. Пошел писать серверную часть трояна на асме.


 
VEG ©   (2004-11-05 01:03) [23]


> To day   (05.11.04 00:49) [22]
> Спасибо. Пошел писать серверную часть трояна на асме.

Да... Ну и замухрышки у тебя.


 
Anatoly Podgoretsky ©   (2004-11-05 01:35) [24]

To day   (05.11.04 00:49) [22]
Вообще то таких бьют и больно.


 
SPeller ©   (2004-11-05 06:39) [25]

To day

Потому что VCL. На Дельфи можно одну пустую форму в 17 КБ — если использовать KOL.


 
VMcL ©   (2004-11-05 07:37) [26]

>>SPeller ©  (05.11.04 06:39) [25]

А можна писать вообще "чиста на WinAPI" :-)


 
VMcL ©   (2004-11-05 07:40) [27]

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


 
sniknik ©   (2004-11-05 08:39) [28]

> Для его, правда, я видел урезанную RTL, где получаются программы от 8кб., но это чревато потерей работоспособности некоторых встроенных не WinAPI системных функций.
замена от KOL системных модулей, тоже позволяет начать в дельфи с размера в 8кб (меньше, 4кб похоже просто невозможно)


 
sniknik ©   (2004-11-05 08:45) [29]

вообще смешно, все друг друга понимают... ну кроме автора.
показательно, не "дорос" еще.  ;о)))
всетаки какойто базовый уровень нужно иметь для определенных вопросов.
2 To day попробуй отложи это на пару лет. потом вернешся к этому вопросу глядиш и все понятно будет, и трояна после писать не захочется, а мир от сегодняшнего глючного избавиш.


 
KSergey ©   (2004-11-05 09:57) [30]

> [29] sniknik ©   (05.11.04 08:45)

Я конечно не знаю, но если уж он и  [9] Юрий Зотов ©   (04.11.04 22:48) не понял - то я уж и не знаю... Помогут ли 2 года...


 
VEG ©   (2004-11-05 11:17) [31]


> замена от KOL системных модулей, тоже позволяет начать в
> дельфи с размера в 8кб (меньше, 4кб похоже просто невозможно)

Вот на КОЛ я не писал ничего... Когда пытался что-то написать, она на моей Delphi 6 не хотела работать:)
Но вот простая программа со стандартными библиотеками на WinAPI у меня получалась от 12кб. Неужели кому-то не устроят 4-30 лишних кб? :) Это же несколько секунд загрузки с нета, да?:)


 
To day   (2004-11-05 12:21) [32]

Anatoly Podgoretsky ©  (05.11.04 01:35) [24]
А таких не бьют?
sniknik ©  (05.11.04 08:45) [29]
Ваши знания потрясающие. Очень матерый жук.
SPeller ©  (05.11.04 06:39) [25]
Да, знаю. Есть у меня она.

Может вопрос прозвучал не корректно. Извеняйте я не писатель. Но смысл ясен и так. Разные библиотеки сравневать не призывал.

ЗЫ: троян написал, пошел впаривать.


 
To day   (2004-11-05 12:32) [33]

sniknik ©  (05.11.04 08:45) [29]
>все друг друга понимают... ну кроме автора.
>показательно, не "дорос" еще.

Незнаю как высокорослым, но я здесь не понял только 1 великана. Это ты. Видимо мой рост не позволяет рассмотреть столь высокое и необъятное как ты.

ЗЫ: вернусь через 2 года.


 
Danilka ©   (2004-11-05 12:41) [34]

[32] To day   (05.11.04 12:21)
> троян напИсал, пошел впаривать

Бедненький. Да, впарить этой зверюге надо, шоб больше не писался, или хотя-бы убирал за собой. :)

> ЗЫ: вернусь через 2 года.

Однако не надо. Прояви гордость, плюнь на этих великанов и никогда-никогда не возвращайся сюда. :))


 
}|{yk ©   (2004-11-05 12:47) [35]

Анатомия C Run-Time, или Как сделать программу немного меньшего размера
<...>
Радикальные меры: отказываемся от CRT Startup
Если ампутация кажется вам разумной хирургической операцией, то стартовый код CRT можно выбросить из программы совсем.

Что это означает? Отказавшись от некоторых привычных удобств, которые предоставляет CRT, можно писать на C/C++, не используя возможностей, которые требуют поддержки со стороны CRT.

В мире Windows API такое решение не пугает многих. Взгляните, например, на NullSoft Installer.

В самом деле, для файловых операций можно использовать функции Win API, вместо динамической памяти C++ использовать кучу (хип) Windows, для форматирования можно использовать wsprintf вместо sprintf, для сравнения строк - lstrcmp вместо strcmp и т.д.

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


 
имя   (2004-11-05 12:49) [36]

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


 
sniknik ©   (2004-11-05 13:49) [37]

> sniknik ©  (05.11.04 08:45) [29]
> Ваши знания потрясающие. Очень матерый жук.
спасибо за комплимент. еше пара поклонников и можно канонизироваться. ;о))

или это сарказм? типа говорит то о чем не знает ничего, нет знаю занимался, не много но пару програмок написал.
одну даже в инет выкладывал.
http://delphi.chertenok.ru/forum/my_download.php?tema=del&action=show&id=173
можеш полюбопытствовать. правда там насколько помню прога в 11кб но извини она же и делает кое чего (не пустышка на 8). после попробуй скомпилить у тебя такого размера не получится если не пользоваться заменами (уверяю это не подтасовка, в тот екзешник компилились именно те модули что там лежат)


 
Ihor Osov'yak ©   (2004-11-05 13:57) [38]

> ЗЫ: вернусь через 2 года.

после отсидки..


 
имя   (2004-11-05 14:14) [39]

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


 
SPeller ©   (2004-11-05 14:34) [40]

To day   (05.11.04 12:21) [32]
Да, знаю. Есть у меня она.
Может вопрос прозвучал не корректно. Извеняйте я не писатель. Но смысл ясен и так. Разные библиотеки сравневать не призывал

Да я и не сравнивал. Ты спросил почему - я тебе сказал. Не веришь - спроси у кого-нить другого - подтвердят.



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

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

Наверх





Память: 0.55 MB
Время: 0.039 c
14-1099263482
Yegorcic
2004-11-01 01:58
2004.11.21
Проблема с DVD-Rom ом


1-1099886622
Кто---то
2004-11-08 07:03
2004.11.21
Существует ли функция обратная Format ? Чтобы вытаскивала по


1-1099993977
Andry
2004-11-09 12:52
2004.11.21
Сколько страниц напечатал принтер


4-1097340955
Sergeika
2004-10-09 20:55
2004.11.21
Изменение яркости монитора


1-1099418975
kirilllius
2004-11-02 21:09
2004.11.21
стирается Canvas





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский