Für ghci
, kann ich die Erinnerung GHCI begrenzen, indemWie kann ich RTS-Optionen an runghc übergeben?
$ ghci +RTS -M10m -RTS
verwenden können, wenn ich das ganze Programm zu kompilieren, kann ich
$ ghc -rtsopts a.hs
dann
$ ./a +RTS -M10m
Wie kann ich dies tun für runghc a.hs
? Ich habe mehrere Möglichkeiten ausprobiert, wie runghc a.hs +RTS -M10m
, aber keiner von ihnen scheint zu funktionieren. Die einzige Option, die ich den Speicher begrenzen konnte, war durch
$ export GHCRTS='-M10m'
$ runghc a.hs
, aber ich möchte diese nur einmal sein, so dass ich lieber tun dies durch Argumente zu runghc
vorbei.
Edit: Ich überprüfe, ob die Option funktioniert oder nicht die folgende Strategie verwenden (nur weil ich bessere Möglichkeiten nicht kennen):
-- a.hs
f x = f (f x)
main = print $ seq (f 0) 0
Öffnen Sie zwei Terminals, eines für top
Befehl und ein anderer zum Ausführen des Codes. Wenn die Ausführung aufhört, "Heap erschöpft" zu sagen, schließe ich, dass -M[number]m
funktioniert. Wenn die Ausführung fortgesetzt wird und viel Speicherplatz belegt ist, bringe ich den Prozess um und folge, dass es nicht gelingen konnte.
'ranghc + RTS-M10m a.hs' oder' ranghc -rtsopts a.hs + RTS-M10m'? (Nur Raten) – Dogbert
@Dogbert versuchte beide, und keiner arbeitete. Danke trotzdem :( – Yosh
Wie überprüfen Sie, ob das Flag gesetzt ist oder nicht aus dem Programm? – Dogbert