The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Влияние несущественных изменений кода на производительность ..., opennews (??), 09-Окт-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "Влияние несущественных изменений кода на производительность ..."  –7 +/
Сообщение от Аноним (1), 09-Окт-18, 11:13 
>Дело оказалось в том, что GCC принимает решение об использовании inline-развёртывания функций в зависимости от результатов косвенной оценки размера результирующего кода (даже если функция определена с ключевым словом "inline").

GCC теперь Apple пишет? "Мы знаем лучше что вам надо"?

Ответить | Правка | Наверх | Cообщить модератору

5. "Влияние несущественных изменений кода на производительность ..."  +9 +/
Сообщение от пох (?), 09-Окт-18, 11:30 
inline _всегда_ был _хинтом_ компилятору, что вот это вот имеет смысл попробовать сделать inline, а не директивным указанием. Точно так же как пресловутый register в определении переменных.

> GCC теперь Apple пишет? "Мы знаем лучше что вам надо"?

apple занят, он пишет llvm, и у него все хорошо с инлайнами (кроме несовместимости очень старого gcc кода). Проблема гнутых обезьянок в том, что они как раз не знают лучше, и добавили нечеловеческой логики в это незнание.

Ответить | Правка | Наверх | Cообщить модератору

69. "Влияние несущественных изменений кода на производительность ..."  +/
Сообщение от Аноним (-), 12-Окт-18, 10:10 
> сделать inline, а не директивным указанием. Точно так же как пресловутый
> register в определении переменных.

Register так вообще считается deprecated, в плюсах им вообще пользоваться не следует. Потому что пытаться хинтить компилятору аллокацию регистров - дело тухлое. А если ну очень хочется, есть asm() и intrinsics, наконец. В остальных случаях компилятор и сам догадывается как регистры раскинуть, так что втыкание "register" ничего не дает кроме лишней писанины.

>> GCC теперь Apple пишет? "Мы знаем лучше что вам надо"?
> apple занят, он пишет llvm, и у него все хорошо с инлайнами

Зато у него почему-то хваленая скорость компиляции ушла в плинтус как только им захотелось производительность кода сколь-нибудь сравнимую с gcc.

> и добавили нечеловеческой логики в это незнание.

...а разработчики шланга собезьянили, как обычно?

Ответить | Правка | Наверх | Cообщить модератору

74. "Влияние несущественных изменений кода на производительность ..."  +/
Сообщение от пох (?), 12-Окт-18, 10:24 
> Потому что пытаться хинтить компилятору аллокацию регистров - дело тухлое.

смотря на какой архитектуре.

> В остальных случаях компилятор и сам догадывается как регистры раскинуть,

"в остальных случаях компилятор и сам догадается, что заинлайнить". Вот он и "догадался".

Ответить | Правка | Наверх | Cообщить модератору

77. "Влияние несущественных изменений кода на производительность ..."  +/
Сообщение от Аноним (77), 12-Окт-18, 12:07 
>сам догадывается

я проверял, у меня он догадывался на простом счётчике для перебора массива только после компиляции с инфой профилирования (pgo), разница производительности что-то там в районе 3-4 порядков была. Просто космос. Добиться такого же результата позволяло добавление register, поэтому говорить можно что угодно.

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

78. "Влияние несущественных изменений кода на производительность ..."  +/
Сообщение от Аноним (78), 12-Окт-18, 14:04 
> Register так вообще считается deprecated, в плюсах им вообще пользоваться не следует.

Да-да. Давеча вот такое видел от GCC 8:

warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

85. "Влияние несущественных изменений кода на производительность ..."  +/
Сообщение от irinat (ok), 21-Окт-18, 00:11 
inline был хинтом компилятору только в расширениях gnu89. В c99 ввели понятие inline, и оно с тех пор не связано с инлайнингом напрямую.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

14. "Влияние несущественных изменений кода на производительность ..."  +2 +/
Сообщение от Аноним (14), 09-Окт-18, 12:47 
Это зачатки ИИ :-) , в среднем хорошо но в отдельных местах...
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

56. "Влияние несущественных изменений кода на производительность ..."  +/
Сообщение от Аноним (56), 10-Окт-18, 11:36 
... и если приблизить, то мы увидим 12 новых if.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру