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
memory_profiler
? I am not sure - you may need to use multiprocessing flag – dankal444