get_memory_info.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. import time
  3. from functools import wraps
  4. import logging
  5. import psutil
  6. from format_convert.judge_platform import get_platform
  7. if get_platform() == "Linux":
  8. import resource
  9. logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  10. def memory_decorator(func):
  11. @wraps(func)
  12. def get_memory_info(*args, **kwargs):
  13. if get_platform() == "Windows":
  14. return func(*args, **kwargs)
  15. # 只有linux有resource包
  16. # usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
  17. usage = psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024 / 1024
  18. start_time = time.time()
  19. logging.info("----- memory info start - " + func.__name__
  20. + " - " + str(round(usage, 2)) + " GB"
  21. + " - " + str(round(time.time()-start_time, 2)) + " sec")
  22. result = func(*args, **kwargs)
  23. # usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
  24. usage = psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024 / 1024
  25. logging.info("----- memory info end - " + func.__name__
  26. + " - " + str(round(usage, 2)) + " GB"
  27. + " - " + str(round(time.time()-start_time, 2)) + " sec")
  28. return result
  29. return get_memory_info