Ich habe ein ziemlich Programm ..Erlang Heapüberlauf
Sein fast vollständig ..
Jedoch habe ich nach ca. 12 Stunden Lauf einen Haufen Absturz sehe.
Ich erinnere mich zu hören, dass Sie Erlang nicht auf eine bestimmte Weise programmieren können, wenn nicht, wenn Sie den Stack rekursieren. Kann mir jemand ein Beispiel dafür geben ??
Und gibt es auch eine Möglichkeit, einen Echtzeitmonitor zu haben, welcher Prozess sich "stapelt"?
Grüße
EDIT - Was ist
loop() ->
receive
{sys, Msg} ->
handle_sys_msg(Msg),
loop();
{From, Msg} ->
Reply = handle_msg(Msg),
From ! Reply,
loop();
_ -> continue
end,
loop().
Ihre Bearbeitung ist tail rekursiv, was bedeutet, dass nichts auf dem Stack erstellt wird. – Lukas
Als @TERRIBLE ADVICE sehr richtig darauf hinweist, dass Ihre Bearbeitung ist nicht Schwanz rekursiv – rvirding