The OpenNET Project / Index page

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



"Опубликован код ядра и ряда GNU-утилит для платформы Эльбрус 2000"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Опубликован код ядра и ряда GNU-утилит для платформы Эльбрус..." +1 +/
Сообщение от n00by (ok), 24-Авг-22, 09:13 
Я просто вырву оттуда первую попавшуюся цитату

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

int get_inc_val () { return 3; };
...
int a=0;
while (a < 10000)
{
   a+=get_inc_val();
}
...

Архитектура Эльбрус крайне плохо исполняет код, если в нём появляются не заинлайненные вызовы функций. В таком случае производительность может падать на порядок.

Если в данном цикле вызов функции get_int_val по какой-то причине не заинлайнится компилятором, то для RISC/CISC архитектуры с OoO итерация цикла будет занимать ~1 такт(P.S. после публикации статьи проверка на реальном коде показала 3 такта), не отличаясь принципиально от случая, если инлайн сработал.
"""

А вот первая попавшаяся релевантная цитата из IA32 Optimization Manual

Assembly/Compiler Coding Rule 5. (MH impact, MH generality) Selectively inline a function if
doing so decreases code size or if the function is small and the call site is frequently executed.

Интел пишет, что приведённая как пример функция должна быть заинлайнена. Как минимум, данный пример не годный. Моя интуиция подсказывает, что там можно ещё таких найти.

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

Оглавление
Опубликован код ядра и ряда GNU-утилит для платформы Эльбрус 2000, opennews, 20-Авг-22, 19:35  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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