Diese Frage ist eine Folge von diesem question.Speicherleck Sicstus Prolog
Ich bin eine große Anzahl von Tests in SICStus Prolog ausgeführt wird:
runtest:-
t1,
t2,
t3,
.
.
t100.
Jeder Test Standalone und wird das Ergebnis auf den Bildschirm drucken. Zwischen den Tests besteht kein Zusammenhang, so dass zwischen den einzelnen Tests keine Daten gespeichert/gespeichert werden müssen.
Mein Problem ist, dass SICStus Speicher sammelt und trifft schließlich eine Ausnahme: ‚Ressourcenfehler: nicht genügend Arbeitsspeicher‘
ich versucht habe, meinen Test so zu organisieren:
runtest:-
once(t1),
once(t2),
.
.
once(t100).
Aber ich immer noch in das Problem.
Gibt es eine andere Möglichkeit, Prolog mitzuteilen, dass zwischen jedem Aufruf eines Tests der gesamte zugewiesene Speicher freigegeben wird?
Es würde eine Menge helfen, diesen Stil terminologisch von den üblichen fehlergesteuerten Schleifen zu trennen. 'findall/3',' setof/3' haben fehlerbehaftete Schleifen im Inneren. – false
Es gibt keine Notwendigkeit für einmal (T), weil "T" ausreicht. – false