Per ghci
, posso limitare la ghci memoria può utilizzare daCome posso passare le opzioni RTS a runghc?
$ ghci +RTS -M10m -RTS
Quando compilo tutto il programma, posso
$ ghc -rtsopts a.hs
poi
$ ./a +RTS -M10m
Come posso fare questo per runghc a.hs
? Ho provato diversi modi, come runghc a.hs +RTS -M10m
, ma nessuno di loro sembra funzionare. L'unica opzione che potrei limitare la memoria era di
$ export GHCRTS='-M10m'
$ runghc a.hs
, ma voglio che questo sia solo una volta, quindi preferisco farlo passando argomenti per runghc
.
Edit: Sto controllando se l'opzione funziona o non utilizzando la seguente strategia (solo perché non so modi migliori):
-- a.hs
f x = f (f x)
main = print $ seq (f 0) 0
Aprire due terminali, uno per top
comando e un altro per l'esecuzione del codice. Se l'esecuzione si interrompe dicendo "Heap esaurito", concludo che -M[number]m
funziona. Se l'esecuzione continua e utilizza un'enorme quantità di memoria, uccido il processo e concludo che non ha avuto successo.
'runghc + RTS -M10m a.hs' o' runghc -rtsopts a.hs + RTS -M10m'? (Solo indovinando) – Dogbert
@Dogbert Provato entrambi, e nessuno dei due ha funzionato. Grazie comunque :( – Yosh
Come stai verificando se il flag è impostato o meno dal programma? – Dogbert