Mam funkcję, która wykonuje tylko kilka operacji, takich jak przyrosty. Ogłosiłem to jako inline
oraz z __attribute__((hot))
.Wpływ wydajności kombinacji "gorący" i "wbudowany" dla definicji funkcji
Gcc Doc proponuje następujące atrybutu hot
:
Gorący atrybut jest używany do poinformowania kompilatora, że funkcja jest hot spot skompilowanego programu. Funkcja jest zoptymalizowana bardziej agresywnie i na wielu celach jest umieszczana w specjalnej podsekcji sekcji tekstowej, dzięki czemu wszystkie gorące funkcje pojawiają się blisko siebie, poprawiając lokalizację.
, które można interpretować tak, jak w przypadku innych funkcji niż inline
, które zostałyby umieszczone w dolnym obszarze adresowym mapy adresu procesu. Ale funkcje wywoływania funkcji inline
powinny być dosłownie zastąpione przez ich kod. Pytanie brzmi więc, jak naprawdę działa kombinacja inline
i hot
?