I’ve written a program that I need to benchmark on more and more massive situations of a specific drawback. I need 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 it will occur, so I considered limiting the reminiscence obtainable 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. Operating ulimit
with /usr/bin/ulimit: line 4: ulimit: max reminiscence dimension: can not 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 consumer 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 mistaken?
My system: zsh 5.8.1 (x86_64-apple-darwin22.0), MacOS 13.1.