Recently, I’ve been experimenting with the -fprof-late
profiling flag in Haskell (or equivalently, --profiling-detail=late
in cabal) trying to gain a more realistic profiling of some Haskell applications, particularly those with extensive use of optics.
Despite implementing this flag, I’ve observed no significant changes in the profiling results.
One possibility could be that the optics aren’t getting inlined as initially thought, or something is hindering the inlining process during profiling. However, these are only hypotheses at this point and warrant further investigation.
Has anyone experienced similar issues or observed non-typical results while using -fprof-late
? Or, does anyone have insights into why there might be no noticeable difference in the profiling results despite implementing this flag?
Any input or advice would be greatly appreciated.
Here’s the flame graph for the Echidna project, ran with cabal run --enable-profiling echidna --profiling-detail=late -- +RTS -pj -RTS mod.sol --seed 0 --test-limit 10000 --format text
Here’s another flame graph for the same project, this time without late profiling detail: