kjnh10 / pcm

Command line tool for programming contests
MIT License
6 stars 0 forks source link

メモリの制限 or メモリの計測 #35

Closed kjnh10 closed 5 years ago

kjnh10 commented 5 years ago

以下が参考になりそう。

https://stackoverflow.com/questions/30269238/how-to-limit-memory-usage-within-a-python-process

#%%
import resource as rs
import psutil
import os

#%%
print(psutil.virtual_memory())

#%%
process = psutil.Process(os.getpid())

def print_memory_info():
    used_memory_byte = process.memory_info().rss
    print(process.memory_info())
    print(used_memory_byte, 'B')
    print(used_memory_byte/(1<<10), 'KB')
    print(used_memory_byte/(1<<20), 'MB')
    print(rs.getrusage(0).ru_maxrss)

#%%
print_memory_info()

a = [0]*10000000
print("\nadd list")
print_memory_info()

del a
print("\ndelete list")
print_memory_info()
kjnh10 commented 5 years ago

windowsではresource moduleが使えないので以下のリンクを参考にする? https://stackoverflow.com/questions/13607391/subprocess-memory-usage-in-python/13607392

上のはrun時間が短いとうまく動かなそう。 https://stackoverflow.com/questions/54949110/limit-python-script-ram-usage-in-windows

kjnh10 commented 5 years ago

linuxでやるなら以下がよさそう。

https://stackoverflow.com/questions/22732932/how-to-get-the-max-memory-usage-of-a-program-using-psutil-in-python

kjnh10 commented 5 years ago

v0.5.2で実装済み