Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> размер программы, ??? 
:(
    Опции темы
Abyx
Дата 14.7.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(djamshud @  14.7.2010,  12:37 Найти цитируемый пост)
почему у меня его нет

он есть. таскайте динамический рантайм вместе с программой - тот код рантайма который программа не использует - будет мертвым по определению.

кроме того, динамический рантайм может не давать оптимизатору его инлайнить.

Цитата(djamshud @  14.7.2010,  12:37 Найти цитируемый пост)
имеет место быть конкуренция между эффективностью и размером, то есть либо одно, либо другое, либо некий компромисс, но не все сразу

вы похоже не понимаете как делается оптимизация за счет увеличения размера.

PM MAIL   Вверх
djamshud
Дата 14.7.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

Репутация: 1
Всего: 39



>он есть. таскайте динамический рантайм вместе с программой - тот код рантайма который программа не использует - будет мертвым по определению.

Ясно, опять ни о чем. Открою вам маленький секрет: такскать с собой динамические библиотеки - некомильфо, dll hell во все поля.

>вы похоже не понимаете как делается оптимизация за счет увеличения размера.

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

Навскидку, вот что я вижу в размерах stl:
- общий код, вкомпилированный в либу, а не вынесеный наружу через хедеры
- вкомпилированные специализации темплейтов под некоторые типы
- использование внутренних статических хешей для каких-то структур данных

Выкидываем пункты 2 и 3, получаем маленькую, но донельзя тупую stl. Выкидываем кучу кода наружу (пункт 1), получаем жирный софт, в который дорая часть stl-я и вкомпилируется.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Abyx
Дата 14.7.2010, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(djamshud @  14.7.2010,  13:42 Найти цитируемый пост)

- использование внутренних статических хешей для каких-то структур данных

што? каких хешей? каких данных?

мы о статической линковке говорим или нет?!!!!
что значит "вкомпилированные в либу"? какая еще либа в бинарнике при статической линковке либы с исходниками?
весь бинарник должен быть оптимизирован целиком,
все что не используется - выкидывается,
все что используется 1-2 раза - должно быть заинлайнено и оптимизировано с остальным кодом

для кода в 1м посте в бинарнике вообще практически ничего не должно остаться от STL

Добавлено через 13 минут и 9 секунд
что вообще означает "Выкидываем кучу кода наружу" ?
куда наружу? 

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

в результате инлайна могут получаться функции размером в десятки килобайт %)

Это сообщение отредактировал(а) Abyx - 14.7.2010, 15:33
PM MAIL   Вверх
djamshud
Дата 14.7.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

Репутация: 1
Всего: 39



>што? каких хешей? каких данных?

Ну да. Навскидку, я ж предупреждалsmile.

>мы о статической линковке говорим или нет?!!!!

OMG. Меня плющит, по привычке опять на динамическую перескочил.

>куда наружу?

Я имел в виду (говоря про динамическую линковку), что куча всего, реализованного в .h библиотеки в конечном счете попадет в программу, а не в бинарник самой либы.

Сейчас собрал полностью (libc и libstdc++) статический бинарник хелловорлда в метр с лишним... objdump показал около 5000 использованных символов... Изучением графа вызовов займусь в свободное время. Еще раз навскидку есть предположение, что гцц запихал в бинарь то, что необходимо не только main-у, а всему iostream-у и всему, что он использует (ибо он подключен в исходный файл программы и естественно компилируется).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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