Ich versuche, einen Haskell-Code mithilfe der GHC-Profiling-Tools zu erstellen. Die Kostenstelle, für die ich mich am meisten interessiere, wird derzeit jedoch von einer Reihe von Initialisierungscodes dominiert, die mich nicht wirklich interessieren.
Mein Code sieht ungefähr so aus:
%Vor% In meinem eigentlichen Code dauert der lotsOfInitialization
-Teil ~ 98% der Zeit und so ist es schwierig, mit einer Granularität zu sehen, was in interestingPart
passiert.
Ich dachte, dass nur Annotationen an einer Stelle (und nicht -fprof-auto
) ausreichen würden, aber der Bericht, den ich bekomme, zeigt immer noch alle Funktionsaufrufe.
Ich habe auch eine Strictness Annotation auf x
versucht, aber das schien nichts zu ändern.
Gibt es eine Möglichkeit, GHC zu sagen, den Initialisierungscode zu ignorieren oder nur auf die Teile zu fokussieren, die ich möchte?
Ich konnte jedoch keine Lösung finden, die etwas ähnliches für die Zeitprofilierung tut.
BEARBEITEN:
Ich habe es tatsächlich geschafft, einen Weg zu finden, um bequem das zu tun, was Sie sowohl für die Zuweisung als auch für die Zeitprofilierung benötigen. Wenn Sie den Visualizer profiteur für .prof
-Dateien verwenden, können Sie das Leistungsprofil einer bestimmten Kostenstelle als schön formatiert ansehen Baumkarte.