记录python时间内存计算操作
- 时间计算采用time模块
- 内存计算分别采用memory_profiler和psutil
1.占用时间计算:time
import time
def funT(t):
for i in range(t*10):
pass
if __name__=='__main__':
t=10
begin=time.time()
funT(t)
end=time.time()
print('时间:{}s'.format(end - begin))
#时间:3.0994415283203125e-06s
2.占用内存计算:memory_profiler
#方法1
from memory_profiler import profile #pip 安装
@profile
def FunS(n):
[1]*(10**n)
if __name__=='__main__':
n=7
FunS(n)
#Line # Mem usage Increment Occurrences Line Contents
#=============================================================
# 8 18.4 MiB 18.4 MiB 1 @profile
# 9 def DemoSpace(n):
# 10 94.7 MiB 76.3 MiB 1 [1]*(10**n)
3. 占用内存空间:psutil
import psutil
import os
def show_info():
#计算消耗内存
pid = os.getpid()
# 模块名比较容易理解:获得当前进程的pid
p = psutil.Process(pid)
# 根据pid找到进程,进而找到占用的内存值
info = p.memory_info()
memory = info.rss / 1024 / 1024
return memory
def FunS(n):
[1]*(10**n)
if __name__=='__main__':
n = 7
start_memory = show_info()
FunS(n) # 需要计算的算法步骤
end_memory = show_info()
print(f'一共占用{end_memory - start_memory}MB')
#一共占用76.3046875MB