0
votes

I try to measure the actual memory usage of below code using "/usr/bin/time -v". But find out no matter what size given to SharedMemory(..), the reported "Maximum resident set size (kbytes)" is the same.

from multiprocessing.shared_memory import SharedMemory

data_bytes_len = 10 ** 8
shm = SharedMemory(create=True, size=data_bytes_len)
print("size of shm:", shm.size)
shm.unlink()

See below outputs

Size is 100:

size of shm: 100
        Command being timed: "python shm.py"
        User time (seconds): 0.04
        System time (seconds): 0.00
        Percent of CPU this job got: 100%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.05
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 13124
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 2809
        Voluntary context switches: 0
        Involuntary context switches: 2
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

Size if 100000000

size of shm: 100000000
        Command being timed: "python shm.py"
        User time (seconds): 0.03
        System time (seconds): 0.00
        Percent of CPU this job got: 100%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.04
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 12996
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 2811
        Voluntary context switches: 0
        Involuntary context switches: 2
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0
have you tried memory_profiler? I am not sure - you may need to use multiprocessing flagdankal444