在使用 Python 語言做算法、數(shù)據(jù)分析等等,通常程序員需要了解程序的效率和內(nèi)存使用的情況,從而更好地了解以及優(yōu)化程序。下面,就和大家分享一下如何來檢測 Python 程序的運行時間和內(nèi)存占用情況。
相關(guān)庫
Time
time 庫是 Python 處理時間的標準庫,提供了獲取系統(tǒng)時間并格式化輸出的功能,提供系統(tǒng)級精確計時功能,用于程序性能分析。
常用方法
時間獲取 time()
時間格式化 strftime(format)
程序計時 sleep(seconds)
OS
os 庫是 Python 標準庫之一,提供了通用的、基本的操作系統(tǒng)交互功能。
常用方法
打開文件 os.open()
返回當前工作目錄 os.getcwd()
獲取當前進程的進程ID os.getpid
psutil
psutil 是一個開源且擴平臺的庫,提供了便利的函數(shù)用來獲取系統(tǒng)的信息,例如:CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤等。還可以用來進行進程管理。
常用方法
??碈PU個數(shù) cpu_count()
獲取當前的進程對象 Process()
查看網(wǎng)卡信息統(tǒng)計 net_io_counters()
代碼實例:
下面我們將編寫兩個函數(shù),分別是用來檢測程序運行時間和程序內(nèi)存占用的情況。同時編寫一個簡單的函數(shù),用來測試。詳細代碼如下:
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("程序占用了內(nèi)存"+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()
運行結(jié)果:
總結(jié)
以上就是關(guān)于如何檢測 Python 測序的運行時間和內(nèi)存占用情況的全部內(nèi)容。