Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Оптимизация в Project Options. Где почитать?

415
19 ноября 2003 года
SLA
274 / / 08.08.2003
Где можно почитать про оптимизацию программ в BCBuilder? Я имею ввиду оптимизацию через Project Options. Кроме хелпа, конечно. :)
Должен же где-то быть хороший guide по этому делу?
421
21 ноября 2003 года
bercut
124 / / 20.06.2000
Цитата:
Originally posted by SLA
Где можно почитать про оптимизацию программ в BCBuilder? Я имею ввиду оптимизацию через Project Options. Кроме хелпа, конечно. :)
Должен же где-то быть хороший guide по этому делу?



У меня есть, но все это в бумажном варианте.

415
21 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by bercut
У меня есть, но все это в бумажном варианте.



Я был бы очень благодарен, если бы вы написали, ЧТО нужно сделать в Project Options чтобы УМЕНЬШИТЬ размер EXE.

Особенно в секции
Project options / Linker / PE file options

Заранее спасибо.

P.S. Моя программа сейчас занимает 5 Кб, но я знаю, что можно уменьшить ее еще на 0,5 - 1 Кб.

293
22 ноября 2003 года
SEDEGOFF
586 / / 06.10.2002
А зачем тебе эти 0,5 кб?
Попробуй убрать из ЕХЕ отладочную инфу
421
24 ноября 2003 года
bercut
124 / / 20.06.2000
Попробуй поискать первую книгу Архангельского по C++Builder 5, в которой все опции проекта отлично описаны.
У меня она есть, но в ручную все это сюда забивать нет времени. А сканера к сожалению под рукой нет.
415
24 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by SEDEGOFF
А зачем тебе эти 0,5 кб?
Попробуй убрать из ЕХЕ отладочную инфу



Так ведь давно уже убрал! Станет ли нормальная програма весить 5 Кб? :) Я также убрал RTL, иначе прога весила бы 18 Кб. Я сделал _все_ что мог, осталось дело за оптимизацией.

Зачем это нужно? Из спортивного интереса. Я хочу доказать, что [color=red]на C++Builder можно создавать проги не хуже чем на Visual C++[/color]. Основным недостатком Билдера по сей день считается огромный вес скомпилированных программ. Поэтому мне ОЧЕНЬ нужно скинуть этот пятый килобайт!

3
24 ноября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by SLA


Так ведь давно уже убрал! Станет ли нормальная програма весить 5 Кб? :) Я также убрал RTL, иначе прога весила бы 18 Кб. Я сделал _все_ что мог, осталось дело за оптимизацией.

Зачем это нужно? Из спортивного интереса. Я хочу доказать, что [color=red]на C++Builder можно создавать проги не хуже чем на Visual C++[/color]. Основным недостатком Билдера по сей день считается огромный вес скомпилированных программ. Поэтому мне ОЧЕНЬ нужно скинуть этот пятый килобайт!



Основной недостаток билдера - это VCL и уж слишком "сильная" визуализация процесса разработки, как следствие слабые знания разработчиков (не всех, конечно) об ОС.

310
24 ноября 2003 года
fellow
853 / / 17.03.2003
Арбуз слаще огурца (как правило). Но лучше ли? А под водочку? Билдеровская продукция "весомее", но хуже ли? А лучше ли? Не факт.
А ещё приходилось читать где-то в Сети, что если заменить rtl dll на свою, содержащую только реально вызываемые функции, то можно и её подсократить, уменьшив тем самым размер дистрибутива.
А по большому счёту, есть ли смысл заниматься буквоедством в попытках создать самую короткую в мире программу, не делающую никакой полезной работы? Не нужно путать тёплое с мягким, а божий дар с яичницей. И что, у кого-нибудь винта нет, с пятидюймовых дискет работает?
3
24 ноября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by fellow
Арбуз слаще огурца (как правило). Но лучше ли? А под водочку? Билдеровская продукция "весомее", но хуже ли? А лучше ли? Не факт.
А ещё приходилось читать где-то в Сети, что если заменить rtl dll на свою, содержащую только реально вызываемые функции, то можно и её подсократить, уменьшив тем самым размер дистрибутива.
А по большому счёту, есть ли смысл заниматься буквоедством в попытках создать самую короткую в мире программу, не делающую никакой полезной работы? Не нужно путать тёплое с мягким, а божий дар с яичницей. И что, у кого-нибудь винта нет, с пятидюймовых дискет работает?



Ну здесь ты несовсем прав.

1. Иногда просто требуется создать оптимальное по размеру приложение. Примеры? Пожалуйста:
- распространение ПО через интернет,
- создание загрузочных сменных носителей,
- создание "незаметных" (в большинстве случаев вредоносных) программ.

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

3. По теории вероятности в бОльшем больше ошибок. :)

4. Ну и социально-психологический аспект - не солидно, когда "Hellow world" занимает пару сотен килобайт. :D

415
24 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by Green
1. Иногда просто требуется создать оптимальное по размеру приложение. Примеры? Пожалуйста:
- распространение ПО через интернет,
- создание загрузочных сменных носителей,
- создание "незаметных" (в большинстве случаев вредоносных) программ.

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



Совершенно верно.
Программа, которую я компилирую, называется "WinHider", она взята из статьи "Написание экстра-маленьких Win32 приложений на С++ от 1 Кб".
И я бы не сказал, что она "пустая" или "бесполезная". Я пользуюсь ею все время на работе. Например прямо сейчас. :)
Сама статья ориентирована на Visual C, и в Билдере описанный способ не работает. (Хотя она лежит на этом сайте под названием "Написание маленьких приложений на Borland C++ Builder") Я же узнал как ДЕЙСТВИТЕЛЬНО это делается на Билдере. На VC она занимает 4 Кб, на BCB пока 5 Кб. Хочется меньше.
Может кто-нибудь подскажет, как на Билдере сделать Align=512 bytes?

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

В BCB есть RAD-технологии. В VC их нет. На VC можно написать маленькую и быструю программу. Если я докажу что на BCB - тоже можно, будет 2:1 в пользу BCB.

Зачем вообще нужны маленькие программы? Чтобы они работали МОЛНИЕНОСНО и не жрали оперативку, будучи сервисами. Ведь есть же разница - 4 Кб или 1534 Кб (50 Кб программа + 1462 Кб cc3250mt.dll + 22 Кб borlndmm.dll). Первый вариант в 383 раза меньше!!!

415
24 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by fellow
И что, у кого-нибудь винта нет, с пятидюймовых дискет работает?



:D:D:D Я так начинал. Небыло винта, была одна системная 5,25" дискета с MS-DOS v. 2.11 на немецком языке (только command.com), с защитой от копирования. Дискета была 1983-го года производства, как и сам компьютер. Процессор - Intel-8086, оперативки 640 Кб (или 1024 - не помню уже). Кстати, в MS-DOS 2.0 впервые появилась поддержка ДИРЕКТОРИЙ. ...Да что это я... Ностальгия мучает... :D

Я понимаю, fellow, твой благородный пыл, ты защищаешь Билдер. Но ведь и у меня та же цель. Мы в одной команде. ;) Интерес, чисто спортивный, хочется утереть нос адептам Visual C, утверждающим что на Билдере это невозможно. Я даже саму программу оставил без изменений (разве что самый минимум, чтоб компилировалась), чтобы все было по-честному.

Насчет теплого и мягкого: Я согласен, что на первом месте - функциональность и удобство, а на втором - экономность.

310
25 ноября 2003 года
fellow
853 / / 17.03.2003
Не, зацицать билдер я не собираюсь, так же, впрочем, как и топить его. Более того, считаю, что попытки "доказать" какое-либо мнимое преимущество тёплого над мягким, или наоборот, да ещё довести счёт до 2:1 или ещё до какой-либо надуманной цифры, по своей сути бессмысленны. Интересны, да, но бессмысленны.
Я и сам начинал не с крутых писюков, нам их показывали только из-за железной решётки. Была у меня своя машинка, и загрузочный сектор CP/M-80 знал я наизусть. И не было слаще удовольствия, чем раскурочить какую-либо программу и глянуть, как она устроена, или же накропать микро-код прямо в отладчике. О, благословенная молодость, хе-хе. Времена прошли, настали другие. Только и всего.
415
25 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by fellow
Более того, считаю, что попытки "доказать" какое-либо мнимое преимущество тёплого над мягким, или наоборот, да ещё довести счёт до 2:1 или ещё до какой-либо надуманной цифры, по своей сути бессмысленны. Интересны, да, но бессмысленны.



Но интересны. Это ты сам признал. :)
А что, по делу (оптимизация размера EXE) больше никто ничего не подскажет?

310
26 ноября 2003 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by SLA


Но интересны. Это ты сам признал. :)
А что, по делу (оптимизация размера EXE) больше никто ничего не подскажет?


Я их UPX сжимаю, 1 000 000 => 250 000.

460
26 ноября 2003 года
Berg
261 / / 27.03.2003
Думаю, что не скажу ничего нового и особо умного и все это ты, вероятно, уже проделал, но так...на всяк.случай:
1) Compiler\Code optimizations
2) Advanced Compiler
Instruction set
Data alignment
3) А касаемо PE-опций Linker'a, то по-моему вполне можно безболезненно уменьшать Max stack & Max heap до тех пор, пока прога будет реально фунциклировать... думаю, что это будут довольно-таки маленькие значения. Думаю, что винда не использует пользовательский стек для системных вызовов (как ДОС).
415
26 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by Berg
Думаю, что не скажу ничего нового и особо умного


Приветствуются любые предложения. :)

Цитата:
3) А касаемо PE-опций Linker'a, то по-моему вполне можно безболезненно уменьшать Max stack & Max heap до тех пор, пока прога будет реально фунциклировать... думаю, что это будут довольно-таки маленькие значения. Думаю, что винда не использует пользовательский стек для системных вызовов (как ДОС).


Спасибо! :)
С PE-опциями я еще не ковырялся, т.к. у меня нет привычки лезть туда где я не разбираюсь. Теперь буду пробовать. :)

3
28 ноября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by SLA

С PE-опциями я еще не ковырялся, т.к. у меня нет привычки лезть туда где я не разбираюсь. Теперь буду пробовать. :)



Не думаю, что размер стека и кучи как-то влияет на размер приложения.
Здесь важенее граница выравнивание секций.

460
28 ноября 2003 года
Berg
261 / / 27.03.2003
Цитата:
Originally posted by Green


Не думаю, что размер стека и кучи как-то влияет на размер приложения.
Здесь важенее граница выравнивание секций.



2Green:
Скорее всего, ты прав. Просто почему-то вспомнился asm, когда стек располагался в хвосте проги и надо было думать о том, чтобы он не начал затирать код. А ведь на дворе уже XXI век...:-)

415
28 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by Green
десь важенее граница выравнивание секций.



Ну а как эту границу в Билдере изменить?
Это самый важный момент.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог