Я хотел бы знать, как я могу ограничить максимальную память (кучу), которую процесс может использовать для выделения объектов.Я посмотрел на spawn_opt с max_heap_size, как упоминалось здесь , но я продолжаю получать ошибку badarg.Возможно ли это сейчас?Я хочу избежать использования сервера gen для уничтожения процесса, когда размер heapsize превышает лимит.
-module(maxMemCheck).
-export([fib/1,printfib/1]).
-export([main/0]).
printfib(N) ->
Res = maxMemCheck:fib(N),
io:fwrite("~w ~w~n", [N, Res]).
fib(0) -> 0 ;
fib(1) -> 1 ;
fib(N) when N > 0 -> fib(N-1) + fib(N-2) .
main () ->
spawn_opt(maxMemCheck,printfib,[10],[{max_heap_size,#{size => 300, kill => true, error_logger => true}}]).
Это приводит к ошибке:
{"init terminating in do_boot",{badarg,[{erlang,spawn_opt,[maxMemCheck,fib,"\n",[{max_heap_size,#{error_logger=>true,kill=>true,size=>300}}]],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()