Wie kann ich ein Erlang-Programm in Bezug auf die Speichernutzung profilieren?

Ich möchte die Effizienz eines bestehenden Erlang-Programms weiter verbessern. Zuerst möchte ich Engpässe identifizieren und dann entscheiden, wo weiter optimiert werden soll.

Ich habe versuchtfprof, gibt aber nur Informationen zur Gesamt- und Durchschnittslaufzeit. Am liebsten würde ich ein Protokoll sehen, das der Ausgabe von fprof ähnelt, aber in Bezug auf die durchschnittliche und die gesamte Speichernutzung in Bezug auf Funktionen und Prozesse.

Für den Anfang wäre es ausreichend, ein einzelnes Modul zu profilieren, das keine Prozesse erzeugt, sondern nur seine Funktionen aufruft. Das würde schon helfen, denn ich könnte das Programm zu Testzwecken in verschiedene Module aufteilen.

Typische verdächtige Punkte sind, wo größere Listen gehandhabt werden.

Hier ist die Verwendung von++ wurde aufgelöst vonlists:reverse([Head|Tail]) wie Syntax.

Ich überlege auch, ETS-Tabellen anstelle von Listen für Fälle mit mehr als ein paar hundert Elementen zu verwenden.

Danke im Voraus

Antworten auf die Frage(8)

Ihre Antwort auf die Frage