I’ve written a program that I wish to benchmark on more and more massive situations of a selected drawback. I wish to cease my suite as soon as the situations grow to be too massive to be dealt with on my pc. I do not know when this can occur, so I thought of limiting the reminiscence out there to this system with ulimit
and never persevering with with bigger intances as soon as one situations ran out of reminiscence.
However issuing ulimit -m 10000000
, for instance, fails with ulimit: setrlimit failed: invalid argument
. Just for numbers bigger than round 35000000
works. However limiting this system to three.5GB of reminiscence is a bit pointless. Working ulimit
with /usr/bin/ulimit: line 4: ulimit: max reminiscence dimension: can't modify restrict: Invalid argument
. That is additionally the error I get when working ulimit
in bash.
But when I set ulimit -m 35000000
nonetheless, issuing time ./myprogram
aborts with
./myprogram
16,47s person 0,51s system 310% cpu 5,459 whole
avg shared (code): 0 KB
avg unshared (information/stack): 0 KB
whole (sum): 0 KB
max reminiscence: 799944 KB
web page faults from disk: 0
different web page faults: 249531
Why does this system abort at 800KB? What is the connection to the 35000000?
I do not get it. What am I doing unsuitable?
My system: zsh 5.8.1 (x86_64-apple-darwin22.0), MacOS 13.1.