Re: [心得] 結合Python 與 C(C++) 的優點
※ 引述《KSJ (阿真)》之銘言:
: 我把上面二個分別取為usePython1 跟usePython2 (原來的是usePython 跟useC)
: 結果如下:
: (14.906000137329102, 100000020)
: (26.609000205993652, 100000020)
: (100000020, 0.4849998950958252) <==這是我本來的程式 有輸出i值
: 至於 原本的usePython 跑太久沒出來我就restart了(用家裡的p4跑的)
還是跟 C 實作差了有幾十倍。至於使用 xrange 會比自己使用 local variable 來得
快,我有點意外,本來認為使用 xrange 在 for loop 裡,會多一個 method call
的成本(call xrange object 產生的 generator object 的 next method),應該會比
較慢一點。
iteration 數很大時使用 range 的缺點,除了配置/釋放大量記憶體花費的時間外,
如果實體記憶體不足,使用到了虛擬記憶體在效率上影響更大(使用到硬碟)。
例如原本的 usePython function,range(100000000) 建構的 list 至少要用掉
800 MBytes,如果你放在實體記憶體只有 512 Mb or 256 Mb 的機器上跑,更是讓人
受不了。
況且為了 iteration 使用了這麼多記憶體在很多情況來說都是令人無法容忍,所以
Python 3.0 才把 map/filter/zip 的語意改成產生 generator。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.34
※ 編輯: sbrhsieh 來自: 218.173.131.34 (04/14 02:14)
推
04/14 05:36, , 1F
04/14 05:36, 1F
→
04/14 05:36, , 2F
04/14 05:36, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 7 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章