在使用 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 测序的运行时间和内存占用情况的全部内容。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。