国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在IPython中進(jìn)行Python程序執(zhí)行時間的測量方法

2020-02-15 23:30:20
字體:
供稿:網(wǎng)友

在寫MATLAB的腳本的時候我時長會用tic、toc進(jìn)行一下程序運(yùn)行時間的測量。在Python中偶爾也會測試下,但是基本上都是靠使用time模塊。接觸了IPython之后突然間發(fā)現(xiàn),原來程序執(zhí)行時間的測試可以如此簡單!

在IPython中,程序執(zhí)行時間的測試是通過魔術(shù)函數(shù)來實現(xiàn)。這個功能的魔術(shù)函數(shù)有兩個,一個是time,還有一個是timeit。后面這個功能與前面的功能類似,但是更為精確,因為測試采用了多次測試求取平均值的方式實現(xiàn)。

之前寫了一個簡單的測試小腳本,

#!/usr/bin/python import numpy as npfrom numpy.randomimport randn data = {i :randn() for i in range(7)}

print(data)代碼如下:

在IPython中測試記錄如下:

In [21]: %time%run dict.py{0:1.1356172702418055, 1: -0.24725099335195655, 2: -0.8566028472732841, 3:-0.7027863981377108, 4: 0.8563383373116604, 5: 1.4790260114125025, 6:0.45741003038960254}Wall time: 0 ns In [22]: %time%run dict.py{0:0.4634308244997993, 1: -0.2169481701227914, 2: 1.844213869777202, 3:-1.09428552819743, 4: -0.3162553722440559, 5: 0.35052990092285824, 6:-1.0779260478165211}Wall time: 0 ns

這結(jié)果有點……

確實,這么簡單的語句能夠執(zhí)行多少時間呢!何況現(xiàn)在用的本子還是標(biāo)壓處理器,又是I7計算最強(qiáng)芯。好,接下來改造一下,改成循環(huán):

#!/usr/bin/python import numpy as npfrom numpy.randomimport randn for i inrange(1000):data = {i : randn() for i in range(7)}print(data)

以上代碼存儲到新文件之后,在IPython中進(jìn)行測試與記錄。眼前閃過一大片輸出,拷貝全部的記錄不太可能了,截取部分結(jié)果如下:

{0:-0.8346562430694008, 1: -0.5081226699243429, 2: 0.14690620427134915, 3:-1.1947018796604227, 4: 0.5299884594565932, 5: -0.11730239691529774, 6:-0.008304349615949396}{0:-0.5004558540946741, 1: -2.239882398599743, 2: -0.4877611466394901, 3:0.04679029941320335, 4: -0.04061984884439187, 5: -0.18026780798066566, 6:0.2617579789690715}{0:-0.8498496249579838, 1: -0.34650772255315343, 2: -0.7067822075542513, 3:0.4675343777714329, 4: -2.095049716609193, 5: -1.9396619017424426, 6:1.4723754138476228}{0:1.0829454562962688, 1: 0.3658593642766029, 2: 0.7825005873884392, 3:-0.7024245957641886, 4: -0.9083494908408439, 5: -0.5225361343604294, 6:0.2780526056846729}Wall time: 2.67 s

這次的執(zhí)行結(jié)果確實是挺長的,個人覺得主要的瓶頸應(yīng)該還是在輸出功能上吧!在用timeit測試一下,看看結(jié)果是否有大的變化。部分記錄結(jié)果如下:

{0:1.1881922773474327, 1: 2.095703415950821, 2: 0.7768251617416795, 3:-0.3639801567794642, 4: -1.2155069020886828, 5: 0.05454831526380187, 6:0.521994301720664}{0:0.0962573073179745, 1: -0.6917641905037167, 2: 1.021197433972855, 3:0.4155701479521505, 4: 2.393391538898768, 5: 1.3755258048747323, 6:-0.5540780961303758}{0:-0.418199398478115, 1: 1.1973929026808094, 2: -0.3243683593668846, 3:-1.7765735471011064, 4: -1.1567528174241677, 5: -2.297151750515544, 6:1.6966820033283279}1 loop, best of 3:1.68 s per loop            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜章县| 始兴县| 乌拉特前旗| 修武县| 巩留县| 习水县| 淳安县| 雷州市| 乌兰县| 上栗县| 眉山市| 玉山县| 类乌齐县| 阿鲁科尔沁旗| 承德市| 民丰县| 玛多县| 丰都县| 西林县| 武夷山市| 海盐县| 宁阳县| 康保县| 临安市| 越西县| 连云港市| 布尔津县| 湖北省| 武威市| 库伦旗| 满洲里市| 常州市| 合山市| 邵东县| 潢川县| 灵璧县| 鄢陵县| 株洲县| 静宁县| 永昌县| 桂东县|