2014-11-30 4 views
5

Q: Profile Haskell without installing installing profiling libraries for all dependencies
A: Sie können es nicht. Installiere sie einfach, was ist das Problem?Warum benötigt Haskell, dass alle Bibliotheken Profiling-fähig für das Profiling sind?

Warum?

Wenn ich nur meinen Code profilieren möchte und Bibliotheksaufrufe als No-Op für Profilerstellung betrachte, warum kann dann Partial Profiling nicht zugelassen werden? Das Aktivieren von Propling kann schwierig sein, wenn viele bereits installierte Abhängigkeiten vorhanden sind. Obwohl weniger genau, sollte es einfacher sein.

+1

Ich glaube, Sie über GHC zu stellen bedeutet, anstatt über Haskell. Vielleicht möchten Sie Ihren Titel bearbeiten (und 'ghc'-Tag hinzufügen). – MasterMastic

+0

Das ist in der Tat ein Schmerz im Hintern, der seit Jahren existiert, aber immer noch nicht behoben ist – rem

Antwort

1

Mein Verständnis ist, dass, wenn Sie GHC bitten, Code für das Profiling zu kompilieren, ändert sich die binäre Schnittstelle zum Code. (Und es wird auch gegen eine andere Version des RTS verbunden.) Seit alle Code im selben Programm muss die gleiche binäre Schnittstelle haben ... naja, deshalb.

Um dies zu vermeiden, müsste GHC entweder das Mischen verschiedener Binärschnittstellen im selben Programm unterstützen oder eine Möglichkeit finden, profilierten Code mit derselben Schnittstelle wie nicht profiliertem Code zu kompilieren. Ich denke, dass keines dieser Dinge besonders trivial ist.

Ich stimme es ist sehr ärgerlich, aber ...