App下載

Python 檢測(cè)程序的運(yùn)行時(shí)間和占用內(nèi)存情況

販賣月光的小女孩 2021-10-15 11:48:24 瀏覽數(shù) (7321)
反饋

在使用 Python 語言做算法、數(shù)據(jù)分析等等,通常程序員需要了解程序的效率和內(nèi)存使用的情況,從而更好地了解以及優(yōu)化程序。下面,就和大家分享一下如何來檢測(cè) Python 程序的運(yùn)行時(shí)間和內(nèi)存占用情況。

相關(guān)庫

Time

time 庫是 Python 處理時(shí)間的標(biāo)準(zhǔn)庫,提供了獲取系統(tǒng)時(shí)間并格式化輸出的功能,提供系統(tǒng)級(jí)精確計(jì)時(shí)功能,用于程序性能分析。

常用方法

時(shí)間獲取    time()

時(shí)間格式化    strftime(format)

程序計(jì)時(shí)    sleep(seconds)

OS

os 庫是 Python 標(biāo)準(zhǔn)庫之一,提供了通用的、基本的操作系統(tǒng)交互功能。

常用方法

打開文件   os.open()

返回當(dāng)前工作目錄    os.getcwd()

獲取當(dāng)前進(jìn)程的進(jìn)程ID    os.getpid

psutil

psutil 是一個(gè)開源且擴(kuò)平臺(tái)的庫,提供了便利的函數(shù)用來獲取系統(tǒng)的信息,例如:CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤等。還可以用來進(jìn)行進(jìn)程管理。

常用方法

??碈PU個(gè)數(shù)    cpu_count()

獲取當(dāng)前的進(jìn)程對(duì)象    Process()

查看網(wǎng)卡信息統(tǒng)計(jì)    net_io_counters()


代碼實(shí)例:

下面我們將編寫兩個(gè)函數(shù),分別是用來檢測(cè)程序運(yùn)行時(shí)間和程序內(nèi)存占用的情況。同時(shí)編寫一個(gè)簡單的函數(shù),用來測(cè)試。詳細(xì)代碼如下:

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("程序運(yùn)行了%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()

運(yùn)行結(jié)果:


總結(jié)

以上就是關(guān)于如何檢測(cè) Python 測(cè)序的運(yùn)行時(shí)間和內(nèi)存占用情況的全部內(nèi)容。

0 人點(diǎn)贊