There&#x27;s been a statistical profiler for Gambit Scheme since 2005 by Guillaume Germain (<a href="https:&#x2F;&#x2F;duckduckgo.com&#x2F;html&#x2F;?q=guillaume+germain+statprof" rel="nofollow">https:&#x2F;&#x2F;duckduckgo.com&#x2F;html&#x2F;?q=guillaume+germain+statprof</a>). It&#x27;s written in Scheme unlike this one, including the signal handler, which accesses the current continuation of the running program and from that extracts the information it needs. The continuations represent the &quot;real&quot; backtrace as opposed to the tracing, and they are always there of course (there&#x27;s no disabling them as that would defeat the running of the programs). The profiler could thus extract the proper dynamic context (I don&#x27;t remember if it does, but it could be extended to do so) and thus avoids the risk for surprise mentioned in the article.<p>I&#x27;d expect most Scheme implementations to have a statistical profiler by now?<p>Gambit gets several things right (continuation representation, debugger, perhaps multithreading (although other Schemes got that too)), although at the same time its internals are undocumented, difficult to work with (I found the abstractions used a bit lacking, and it&#x27;s mostly a big amount of code without visible dependency structure which in its current state basically can&#x27;t be run&#x2F;changed&#x2F;analyzed in pieces), and after an unlucky stint at a PhD under its author (1) I stopped plans to work on it. I&#x27;m still looking for a Scheme implementation that&#x27;s got those things down similarly well but is more amendable (perhaps Scheme-48 although it doesn&#x27;t have any real community).<p>(1) he&#x27;s a demanding person to work with, but to be fair mostly the reason for the failure was that I was ill-prepared.