Ho una funzione che esegue solo poche operazioni come incrementi. L'ho dichiarato come inline
e con lo __attribute__((hot))
.impatto delle prestazioni della combinazione "hot" e "inline" per una definizione di funzione
Gcc Doc suggerisce seguente per l'attributo hot
:
L'attributo caldo viene utilizzato per informare il compilatore che una funzione è un punto caldo del programma compilato. La funzione è ottimizzata più in modo aggressivo e su molti target viene inserita nella sottosezione speciale della sezione di testo in modo che tutte le funzioni attive vengano visualizzate ravvicinate migliorando la località.
che può essere interpretato come per le funzioni non inline
hot sarebbero posizionati nell'area di indirizzo inferiore della mappa dell'indirizzo di processo. Ma le chiamate alle funzioni inline
devono essere letteralmente sostituite dal loro codice. Quindi la domanda è come funziona davvero la combinazione di inline
e hot
?