Python 检测程序的运行时间和占用内存情况

2021-10-15 11:48:24 浏览数 (7797)

在使用 Python 语言做算法、数据分析等等,通常程序员需要了解程序的效率和内存使用的情况,从而更好地了解以及优化程序。下面,就和大家分享一下如何来检测 Python 程序的运行时间和内存占用情况。

相关库

Time

time 库是 Python 处理时间的标准库,提供了获取系统时间并格式化输出的功能,提供系统级精确计时功能,用于程序性能分析。

常用方法

时间获取    time()

时间格式化    strftime(format)

程序计时    sleep(seconds)

OS

os 库是 Python 标准库之一,提供了通用的、基本的操作系统交互功能。

常用方法

打开文件   os.open()

返回当前工作目录    os.getcwd()

获取当前进程的进程ID    os.getpid

psutil

psutil 是一个开源且扩平台的库,提供了便利的函数用来获取系统的信息,例如:CPU、内存、网络、磁盘等。还可以用来进行进程管理。

常用方法

常看CPU个数    cpu_count()

获取当前的进程对象    Process()

查看网卡信息统计    net_io_counters()


代码实例:

下面我们将编写两个函数,分别是用来检测程序运行时间和程序内存占用的情况。同时编写一个简单的函数,用来测试。详细代码如下:

import time
import os
import psutil

def count_time(func):
def int_time():
start_time = time.time()
func()
over_time = time.time()
total_time = over_time - start_time
print("程序运行了%s秒" % total_time)
return int_time

def count_info(func):
def float_info():
pid = os.getpid()
p = psutil.Process(pid)
info_start = p.memory_full_info().uss/1024
func()
info_end=p.memory_full_info().uss/1024
print("程序占用了内存"+str(info_end-info_start)+"KB")
return float_info

@count_time
@count_info
def main():
a = [i for i in range(10000)]
print(a)

if __name__ == '__main__':
main()

运行结果:


总结

以上就是关于如何检测 Python 测序的运行时间和内存占用情况的全部内容。