|
Много мелких функций или одна большая? |
|
|
|
 |
Ответов
|
Feb 14 2011, 13:56
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931

|
меня интересует встроится ли код или нет если оставить просто inline ( все эти функции я вывел в отдельный файл и обозвал с inline)
ps про поверье это пять...
Сообщение отредактировал GYUR22 - Feb 14 2011, 13:57
|
|
|
|
|
Feb 14 2011, 15:47
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(GYUR22 @ Feb 14 2011, 16:56)  меня интересует встроится ли код или нет если оставить просто inline Встроится или нет. Я же Вам написал что нужно сделать чтобы всегда встраивалось. Вы что-то не смогли осознать? Цитата(_Pasha @ Feb 14 2011, 17:09)  Пока что с оптимизацией как раз "болезни роста" Думается что это бесконечная болезнь, во всяком случае хочется в это верить.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 15 2011, 17:43
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(sergeeff @ Feb 14 2011, 20:19)  В общем случае нет гарантированного способа "заставить" компилятор встроить inline функцию. Может встроить, а может - нет. Все пляски с прагмами и атрибутами повышают вероятность встраивания. С чего такой пессимизм? Насколько я знаю если в gcc дал атрибут, так он отрабатывает по полной. Не встречалось в моей практике исключений (я сейчас про gcc только говорю). Приведите примерчик кода с листингом для убедительности. Если разить вашу теорию, то и данные предназначенные для помещения в секции EEPROM (это при помощи атрибутов в gcc происходит) ИНОГДА могут оказаться в другой секции. Это абсурд!
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 15 2011, 18:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(demiurg_spb @ Feb 15 2011, 20:43)  С чего такой пессимизм? ... Это абсурд! Поспокойнее сэр! Это не моя теория. Читаем, например, http://msdn.microsoft.com/en-us/library/z8...=vs.80%29.aspx:Цитата The insertion (called inline expansion or inlining) occurs only if the compiler's cost/benefit analysis show it to be profitable. Inline expansion alleviates the function-call overhead at the potential cost of larger code size. чуть ниже: Цитата The compiler treats the inline expansion options and keywords as suggestions. There is no guarantee that functions will be inlined. You cannot force the compiler to inline a particular function, even with the __forceinline keyword. When compiling with /clr, the compiler will not inline a function if there are security attributes applied to the function.
|
|
|
|
|
Feb 15 2011, 18:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(sergeeff @ Feb 15 2011, 21:26)  Поспокойнее сэр!
Это не моя теория. ... У микрософта сносная документация, но не лучшие компиляторы. Если по теме, то надо приводить выдержки из "С99". В gcc насколько помню есть атрибут с говорящим названием always_inline. На моей практике при "-O3" даже inline в большинстве случаев указывать не надо, само автоматически встроится.
|
|
|
|
Сообщений в этой теме
GYUR22 Много мелких функций или одна большая? Feb 11 2011, 12:39 Сергей Борщ Если мелкие сделать принудительно встраиваемыми - ... Feb 11 2011, 12:46 MrYuran Цитата(Сергей Борщ @ Feb 11 2011, 15:46) ... Feb 11 2011, 12:56 demiurg_spb Цитата(Сергей Борщ @ Feb 11 2011, 15:46) ... Feb 12 2011, 07:53 GYUR22 Эээ про Idle можно поподробнее?
ps эта функция ис... Feb 11 2011, 13:20 MrYuran Цитата(GYUR22 @ Feb 11 2011, 16:20) Эээ п... Feb 11 2011, 13:46 GYUR22 богатая идея...
надо обмуслить...
тока общаяя схем... Feb 11 2011, 13:52 MrYuran Цитата(GYUR22 @ Feb 11 2011, 16:52) тока ... Feb 11 2011, 14:19  _Pasha Цитата(MrYuran @ Feb 11 2011, 17:19) Вот ... Feb 11 2011, 15:51   MrYuran Цитата(_Pasha @ Feb 11 2011, 18:51) И гд... Feb 14 2011, 11:36 GYUR22 размер кода пока не пугает ...
оперативки уже мало... Feb 12 2011, 09:40 _Pasha Цитата(GYUR22 @ Feb 12 2011, 13:40) но ес... Feb 12 2011, 10:15 demiurg_spb Цитата(GYUR22 @ Feb 12 2011, 12:40) разме... Feb 12 2011, 14:03 GYUR22 static inline - не компилируется... пишет что лин... Feb 14 2011, 11:16 alexeyv Цитатаstatic inline - не компилируется...
1. stat... Feb 14 2011, 11:25 GYUR22 еще раз для тупого...
чем лучше static inline
по с... Feb 14 2011, 12:28 MrYuran Цитата(GYUR22 @ Feb 14 2011, 15:28) чем л... Feb 14 2011, 12:51      sergeeff Цитата(Petka @ Feb 15 2011, 21:48) У микр... Feb 15 2011, 20:27 _Pasha Цитата(MrYuran @ Feb 14 2011, 15:51) Есть... Feb 14 2011, 14:09 GYUR22 C++, C99, and GNU C each have support for inline f... Feb 14 2011, 17:27 _Pasha Цитата(GYUR22 @ Feb 14 2011, 21:27) выдер... Feb 14 2011, 20:02 GYUR22 честно говоря не собирался никого мучить, даже тем... Feb 14 2011, 20:22 sergeeff Цитата(GYUR22 @ Feb 14 2011, 23:22) Всем ... Feb 14 2011, 20:54 defunct Цитата(GYUR22 @ Feb 14 2011, 22:22) имхо:... Feb 17 2011, 14:44  demiurg_spb Цитата(defunct @ Feb 17 2011, 17:44) Ну т... Feb 17 2011, 19:18   sergeeff Цитата(demiurg_spb @ Feb 17 2011, 22:18) ... Feb 17 2011, 20:31    demiurg_spb Повторюсь, я говорю о avr-gcc и о контроллерах в к... Feb 18 2011, 09:21     sergeeff Цитата(demiurg_spb @ Feb 18 2011, 12:21) ... Feb 18 2011, 13:29      demiurg_spb В gcc, да и думаю во всех современных компиляторах... Feb 18 2011, 20:10 alexeyv Цитатачем лучше static inline
по сравнению с прост... Feb 15 2011, 04:56 dxp Само указание ключевого слова inline в декларации ... Feb 16 2011, 06:42 _Pasha Что характерно - чем вопрос элементарнее, тем диск... Feb 16 2011, 06:54 dxp Цитата(_Pasha @ Feb 16 2011, 12:54) Что х... Feb 16 2011, 08:55 sergeeff Про все современные компиляторы, как выше упоминал... Feb 18 2011, 22:50 _Pasha Цитата(sergeeff @ Feb 19 2011, 02:50) хор... Feb 19 2011, 05:01 demiurg_spb Цитата(sergeeff @ Feb 19 2011, 01:50) А р... Feb 19 2011, 09:02  sergeeff Цитата(demiurg_spb @ Feb 19 2011, 12:02) ... Feb 19 2011, 10:11   _Pasha Цитата(sergeeff @ Feb 19 2011, 14:11) Он,... Feb 19 2011, 13:33 andron86 Цитата(GYUR22 @ Feb 11 2011, 13:39) Есть ... Feb 19 2011, 06:09
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|