123456789101112131415161718192021222324252627282930313233343536 |
- import os
- import time
- from functools import wraps
- import logging
- import psutil
- from format_convert.judge_platform import get_platform
- if get_platform() == "Linux":
- import resource
- logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
- def memory_decorator(func):
- @wraps(func)
- def get_memory_info(*args, **kwargs):
- if get_platform() == "Windows":
- return func(*args, **kwargs)
- # 只有linux有resource包
- # usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
- usage = psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024 / 1024
- start_time = time.time()
- logging.info("----- memory info start - " + func.__name__
- + " - " + str(round(usage, 2)) + " GB"
- + " - " + str(round(time.time()-start_time, 2)) + " sec")
- result = func(*args, **kwargs)
- # usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
- usage = psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024 / 1024
- logging.info("----- memory info end - " + func.__name__
- + " - " + str(round(usage, 2)) + " GB"
- + " - " + str(round(time.time()-start_time, 2)) + " sec")
- return result
- return get_memory_info
|