|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|||||||||||||
При вынесении определения всегда ли нужно указывать функцию как inline явно?22.07.2014, 11:21. Показов 4453. Ответов 46
Метки нет (Все метки)
Бьярни пишет
Кликните здесь для просмотра всего текста
Далее
Кликните здесь для просмотра всего текста
Собсно при вынесении определения нужно всегда указывать функцию как inline явно? Или она всеже будет ею изначально как описано в начале. Слово можно както неоднозначно.
0
|
|||||||||||||
| 22.07.2014, 11:21 | |
|
Ответы с готовыми решениями:
46
Зачем нужно явно указывать тип переменной? Как избавиться от необходимости явно указывать тип в enum? При вынесении кода в отдельную функцию выдает ошибки |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 22.07.2014, 14:02 | |
|
0
|
|
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 22.07.2014, 15:03 [ТС] | |
|
так нада в другую тему с этим вопросом наверно подацо. Говорят что VS показует все но почемуто не у меня.
Добавлено через 40 минут Поцоны незнают а гугл говорит мерять секундомером. Да wtf...
0
|
|
| 22.07.2014, 15:28 | |
|
Не по теме: Tulosba, оттуда, оттуда... :D
0
|
|
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 22.07.2014, 15:28 [ТС] | |
|
Psilon, Tulosba, Пасиб выручили.
Правда я офигел от кол.всего чо там вывелось.
0
|
|
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 22.07.2014, 15:38 [ТС] | |
|
Psilon, Для чего для этого?
Я както читал об этом stdafx.h. Там говорили что это средство масштабных проектов толку от него мало в мелких или даже средних...
0
|
|
|
Master of Orion
|
|
| 22.07.2014, 15:49 | |
|
TierX, ну он ускоряет раз в 10 обычно*, вопрос в том, что длится 100 мс сборка или 10, как-то пофиг. А на масштабных проектах час или 6 минут - роляет
![]() Не по теме: *за данные цифры компания ООО Psilon не несет никакой ответственности и не гарантирует ускорения в 10 раз. Данная информация предоставлена as is, никакие претензии по ущербу, нанесенным учетом этой информации компания не несет.
0
|
|
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 22.07.2014, 15:56 [ТС] | |
|
я понял вобщем для чего. Думаю пока обойдусь )
Добавлено через 7 минут Вобщем всем спасибо вроде коечто прояснилось.
0
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
|||||||||||||
| 22.07.2014, 18:23 | |||||||||||||
|
Вот например, есть класс А:
0
|
|||||||||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 22.07.2014, 19:59 | ||
|
0
|
||
|
Master of Orion
|
|
| 22.07.2014, 20:54 | |
|
DrOffset, ну в случае какого-нибудь #pragma loop, а вот что не хватает мозгов заинлайнить - это конечно для С++ компилятора странно. Я понимаю, шарповый JIT, у него тупо времени не хватает все варианты просмотреть, а нот С++ - он намного умнее
![]() Ладно, не буду холиварить. Есть - и есть
0
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 22.07.2014, 23:55 | ||
|
И это я еще молчу про приколы 2.95.2. Хотя в общем-то это не важно. Не знаю чем тебе не понравился мой пример, но лично мне кажется, что он вполне безобидный. Да и холиварить на эту тему нельзя, я просто рассказал опыт. Не по теме: Вот у меня была ситуация, что из-за ошибки кодогенератора компилятора расчетная программа целых два года выдавала неверные результаты, а человек который ее писал (на всякий случай, этот человек не я), даже сформулировал целую теорию почему так получилось, чтобы оправдаться перед начальством и заказчиками, представляешь, никто даже не задумался о том, что это может быть за ошибка из-за этого. И так логично все выходило, расчеты-то верные на бумаге, все формулы миллиард раз проверены и сам код прошерстили раз 50 разные люди, а потом бац, оказалось кодогенератор чудит. А я тот человек который в итоге эту ошибку нашел. Вот если бы я тебе рассказал такую историю, ты бы тоже не поверил? :)
1
|
||
|
Master of Orion
|
||
| 23.07.2014, 09:06 | ||
![]() а с подобной ситуацией я уже в рассказах переноса вычислений на GPGPU сталкивался, где ISO754 постольку постольку выполняется, fast math, тудыть его
0
|
||
|
Неэпический
|
|
| 23.07.2014, 12:57 | |
|
Для ознакомления: реализация класса в .h файле хорошо или плохо?
0
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||||||||||||||||||||||||||||
| 25.07.2014, 19:48 | ||||||||||||||||||||||||||||
Значит, вот есть такой простейший пример:
Вот дизассемблер без inline: Кликните здесь для просмотра всего текста
Как видно, никакого встраивания по-умолчанию не произошло, вместо этого компилятор сгенерировал jmp. В старой версии в моем примере выше был честный call. Теперь поставим inline: Кликните здесь для просмотра всего текста
Тут inline не только позволил выполнить встраивание, но и инициировал оптимизацию, которая вообще удалила foo из бинарника. 4.7.2 не такой уж старый компилятор, как видно из версии, всего 2 года давности. Однако какая разница в выводе. Для полноты картины я скомпилировал этот же пример компилятором clang (version 3.3 (tags/RELEASE_33/rc2)). Версия без inline (AT&T синтаксис, не пугаемся): Кликните здесь для просмотра всего текста
Clang действительно умнее, еще бы. Однако, добавление inline все-так же влияет на ситуацию: Кликните здесь для просмотра всего текста
Здесь применена упомянутая выше оптимизация и функция foo удалена из бинарника. В общем не так тут все однозначно, как многим представляется. А 5-8 лет назад все было гораздо плачевнее. В защиту GCC: более новые версии, все-таки выполняют встраивание в этом случае. По секрету скажу, что и 4.7.2 выполняет встраивание автоматически (правда немного странно, вставляя jmp на printf), если в функцию printf передавать один параметр, а не два. С чем конкретно связано такое поведение сказать сложно - это надо смотреть исходники. Однако один уже этот факт должен полностью развеять у тебя веру в непогрешимость и ум современных С++ компиляторов. По крайней мере на какое-то время.
3
|
||||||||||||||||||||||||||||
|
Master of Orion
|
||
| 25.07.2014, 19:53 | ||
|
DrOffset, огромное спасибо за анализ!
А что с -О3 ? ![]() Добавлено через 1 минуту По сравнению с ними даже -О2 - это небо и земля.
0
|
||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
|||
| 25.07.2014, 19:59 | |||
|
Добавлено через 3 минуты А то, что у компилятора в машинный код больше возможностей - это естественно и я согласен полностью.
0
|
|||
| 25.07.2014, 19:59 | |
|
Каковы три случая, когда надо явно указывать приведение примитивных типов в Java? Inline функции: как обеспечить уверенность в том, что заданный код, абсолютно всегда будет инлайниться? что нужно указывать в образце поиска при создании макроса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|