Hallo Haskellers da draußen!
Ich habe das Gefühl, dass Fragen zur Performance häufiger aufkommen und dass das Wissen, welche Funktionen / Algorithmen / Bibliotheken schnell und stabil sind, spärlich ist.
Natürlich gibt es Bibliotheken wie Criterion
, die es erlauben, selbst Messungen durchzuführen, und es gibt den Profiler, der von
wie ausgezeichnet von @DonStewart in Tools für Analyse der Leistung eines Haskell-Programms
Ich weiß das:
read
und show
ist normalerweise ein Flaschenhals (für die read
-Funktion im Fall von Zahlen gibt es das Numeric
-Paket, das eine Leistungssteigerung bringt Sequence
, Array
, Vector
und Map
, die oft besser geeignet sind, ein Problem zu lösen, als Listen oder verschachtelte Listen zu verwenden Text
und Bytestring
sind eine bessere Option als String mwc-random
viel schneller ist. Int
anstatt Integer
, BangPatterns
und strikter Falten führt oft zu einer Leistungssteigerung conduit
und pipes
für "stricten" IO, (was ich zugeben muss, dass ich noch nicht benutzt habe) Was sind andere häufige Fallstricke und Engpässe, die man benutzt?
Wie lösen Sie diese?
Die Themen, die mir in den Sinn kommen, sind:
Tags und Links haskell performance