Re: [心得] 結合Python 與 C(C++) 的優點

看板Python作者 (sbr)時間16年前 (2009/04/14 02:09), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串4/7 (看更多)
※ 引述《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
python loop 比 C 慢兩個 order 是正常的
04/14 05:36, 1F

04/14 05:36, , 2F
因此 numpy 才有賣點
04/14 05:36, 2F
文章代碼(AID): #19ut_DMC (Python)
文章代碼(AID): #19ut_DMC (Python)