Sto provando a profilare un codice Haskell usando gli strumenti di profilazione GHC. Il centro di costo a cui sono più interessato, tuttavia, è attualmente dominato da un gruppo di codice di inizializzazione di cui non mi interessa molto.Profilo con una sola funzione (o centro di costo) con GHC
mio codice è grosso modo, in questo modo:
main = do
x <- lotsOfInitialization
print $ {-# SCC "myCostCenter" #-} interestingPart x
Nel mio codice vero e proprio, la parte lotsOfInitialization
sta prendendo ~ 98% del tempo e quindi è difficile vedere con qualsiasi granularità ciò che sta accadendo all'interno interestingPart
.
Ho pensato che solo annotando in un posto (e non usando -fprof-auto
) sarebbe stato sufficiente, ma il rapporto che sto ottenendo mostra ancora tutte le chiamate di funzione.
Ho anche provato un'annotazione di rigore su x
, ma ciò non sembrava cambiare nulla.
C'è un modo per dire a GHC di ignorare il codice di inizializzazione o concentrarsi solo sulle parti che voglio?