Alcuni compilatori possono aiutare fornendo lo stazio occupato nello stack quando viene chiamata ogni singola funzione.
Il GNU GCC ad esempio ha l'opzione "-fstack-usage" per abilitare la scrittura di un file di supporto "file.su" con la descrizione dettagliata dello stazio occupato nello stack di ogni singola funzione. I dettagli nel manuale:
https://gcc.gnu.org/onlinedocs/gnat_ugn ... lysis.htmlquesta analisi viene fatta al tempo della compilazione, non al runtime.
Per una analisi al runtime esiste un modulo di Valgrind che si chiana Callgrind:
http://cs.swan.ac.uk/~csoliver/ok-sat-l ... anual.htmlil quale permette di esaminare il numero di chiamate e il tempo di chiamata di ogni singola funzione.
Il numero di stack dipende dalla CPU e dal sistema operativo. Nei sistemi più semplici lo stack è uno solo ed è globale, nelle CPU più complesse si hanno più stack separati e indipendenti.