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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> inline функции..и размер, В каком месте проигрываем 
:(
    Опции темы
Coocky
Дата 1.12.2005, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Спор тут зашел.. smile
При использовании inline фуункции что теряем-размер исполняемого файла или размер занимаемой памяти , при выполнении проги smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Darhazer
Дата 1.12.2005, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 2
Всего: 29



размер исполняемого файла конечно ;)


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Coocky
Дата 1.12.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Тут сравнение идет на Билдере и VC.
Как-то по разному ведут себя.
У первого exe растет, у второго память немного,а exe не меняется smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
nikitao
Дата 1.12.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


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

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



Да не может этого быть.Inline ф-ция это тоже самое,что ты в кпждом ее использовании фактически вбиваешь сам текст ф-ции.Т е размер exe должен увеличеваться,но и скорость тоже smile


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Coocky
Дата 1.12.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Цитата(nikitao @ 1.12.2005, 17:03)
Да не может этого быть.

Если бы я был Пинокио, у меня б все равно нос не вырос .Проверь smile
Я может какие опции не включил, но пока по умолчанию smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Darhazer
Дата 1.12.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 2
Всего: 29



А в принципе все зависить от компилятора. Компилятор не должен каждую inline функцию сделать inline и можеть сам решить коротких функциях сделать inline. Но по логике -> размер файла должен увеличиться


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
darkart
Дата 1.12.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если компилятор соблаговолит сделать ф-цию Inline то размер exe увеличивается, а скорость ..., вобщем зависит от inline ф-ции.
PM MAIL WWW ICQ Skype GTalk   Вверх
Earnest
Дата 1.12.2005, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Не все так уж однозначно.
Если функция такая:
Код

int getAAA { return m_AAA; }

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


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


Нереварин
**


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

Репутация: 27
Всего: 49



Среднестатический компилятор умнее среднестатического программиста. Он может сам встраивать не-inline функции, и может не встраивать inline-функции smile


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Mephistopheles
Дата 3.12.2005, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегущий от света
*


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

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



Цитата
У первого exe растет, у второго память немного,а exe не меняется

Всё зависит от компилера. Он сам решает ставить функцию, как inline или нет.
Чтобы он стопудово втыкал, надо юзать __forceinline, но это стандарт Мелкомягких, а соответсвенно не кросплатформенный.
--------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света.
PM MAIL WWW ICQ   Вверх
bel_nikita
Дата 3.12.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Coocky
Поиком бы воспользовался smile Не раз уже обсуждали.

inline — не более чем совет компилятору, а делать ее или нет — его личное дело.

Цитата(Mephistopheles @ 3.12.2005, 13:39)
Чтобы он стопудово втыкал, надо юзать __forceinline, но это стандарт Мелкомягких, а соответсвенно не кросплатформенный.

Неа, не стопудово smile Для VC6, к примеру, не всегда стопудово прокатывает smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 3.12.2005, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 17
Всего: 110



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


--------------------
qqq
PM WWW   Вверх
DeadSoul
Дата 3.12.2005, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 2
Всего: 11



Цитата(bel_nikita @ 3.12.2005, 15:02)
inline — не более чем совет компилятору, а делать ее или нет — его личное дело

И дядя Саттер не рекомендует делать функции inline, т.к. любой профайлер может сказать, что данную функцию стоит делать inline, но ни один не скажет, что ее не надо делать inline


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Mephistopheles
Дата 4.12.2005, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегущий от света
*


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

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



Цитата
Неа, не стопудово Для VC6, к примеру, не всегда стопудово прокатывает

Гон, не должно быть так. __forceinline для этого и создан, чтобы "насиловать". smile
--------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света.
PM MAIL WWW ICQ   Вверх
oberonchik
Дата 4.12.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Там в опциях компилятора наверняка ещё должен быть размер функции, которую можно делать инлайн.
По крайней мере под никсами в gcc такой параметр есть.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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