[問題] timeit 測量程式 runtime
想請問一下
我寫了支程式命名為 test.py
裡面只是要計算138956167218765**342048
如果我用timeit來計算這行code的時間
結果會顯示幾微秒(事實上,執行這支程式的時間沒有這麼短)
但如果我是在command line上下time指令去量test.py的runtime
time python test.py
結果是8秒多
代表timeit測得的runtime並不正確囉?
用其他算時間的function(ex. time,datetime)結果也都跟timeit一樣
我想要寫一個能在程式裡面計算每個function的runtime
如果只能用time指令來計算的話
我只能知道這支程式總共的runtime而已
為什麼timeit得到的時間會跟time指令得到的時間不同呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.196.20
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1518701165.A.2A1.html
→
02/15 21:34,
7年前
, 1F
02/15 21:34, 1F
→
02/15 21:34,
7年前
, 2F
02/15 21:34, 2F
→
02/15 21:34,
7年前
, 3F
02/15 21:34, 3F
→
02/15 21:35,
7年前
, 4F
02/15 21:35, 4F
我也這樣想過。
如果我寫一個modular exponential的function來計算的話(事實上我的計算後面有mod m)
用timeit顯示的也是幾微妙(但比**的方法慢,而time也是幾微秒(比**快)
所以我不知道到底應該算是用我的function快還是**快
※ 編輯: lawrence022 (180.217.196.20), 02/15/2018 21:49:35
※ 編輯: lawrence022 (180.217.196.20), 02/15/2018 21:52:56
→
02/15 22:07,
7年前
, 5F
02/15 22:07, 5F
→
02/15 22:08,
7年前
, 6F
02/15 22:08, 6F
應該說我疑惑的點是
程式的runtime不是應該會隨著計算的質改變而有不同嗎?
但我用timeit分別測
1234567**20481
1234567**204812
這兩筆不同質的運算
直覺來想後者runtime一定比較大
但實際測得前者的runtime較大
(前者0.019 後者0.012)
所以我才覺得timeit測runtime是不是不正確
用time就一定都是後者時間比較久
※ 編輯: lawrence022 (180.217.196.20), 02/15/2018 23:03:09
→
02/15 23:20,
7年前
, 7F
02/15 23:20, 7F
→
02/15 23:20,
7年前
, 8F
02/15 23:20, 8F
→
02/16 04:39,
7年前
, 9F
02/16 04:39, 9F
→
02/16 04:39,
7年前
, 10F
02/16 04:39, 10F
→
02/16 05:04,
7年前
, 11F
02/16 05:04, 11F
→
02/16 05:06,
7年前
, 12F
02/16 05:06, 12F
→
02/16 05:07,
7年前
, 13F
02/16 05:07, 13F
→
02/16 05:10,
7年前
, 14F
02/16 05:10, 14F
→
02/16 05:11,
7年前
, 15F
02/16 05:11, 15F
→
02/16 05:12,
7年前
, 16F
02/16 05:12, 16F
→
02/16 05:13,
7年前
, 17F
02/16 05:13, 17F
推
02/22 14:28,
7年前
, 18F
02/22 14:28, 18F
→
03/06 04:43,
7年前
, 19F
03/06 04:43, 19F
Python 近期熱門文章
PTT數位生活區 即時熱門文章