亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 7341 | 回復(fù): 15
打印 上一主題 下一主題

perl for循環(huán)超慢,有沒其它辦法? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-03-14 23:52 |只看該作者 |倒序瀏覽
同樣的一段程序,在delphi中只要30ms,到perl中要3000ms

  1. my $msec=time;
  2.     $middle=0;       
  3.         foreach $i(1..37584806) {
  4.           $middle++;
  5.         }

  6. my $msec2=time;
  7. print "loop for $middle times takes ",($msec2-$msec)*1000,"ms";
復(fù)制代碼
一定要用perl的話,有其它辦法能變快嗎? 程序里for循環(huán)很多,而且有嵌套的,這種速度完全不行.

論壇徽章:
0
2 [報告]
發(fā)表于 2010-03-15 00:30 |只看該作者


用 Inline “C” ?

論壇徽章:
0
3 [報告]
發(fā)表于 2010-03-15 07:20 |只看該作者
用 Inline “C” ?
黑色陽光_cu 發(fā)表于 2010-03-15 00:30



謝謝. 我不了解inline C, 不過, 我的那個perl程序就3個類, 最多循環(huán)的操作是在其中一個類的函數(shù)里(這個函數(shù)還得調(diào)用其它類的函數(shù)),很難抽出來寫一個單獨的C程序. 估計用這個也不太現(xiàn)實.
沒其它辦法的話,估計得重新寫個C++版的程序了,C++我一點也不熟,C更別提了 >.<

論壇徽章:
0
4 [報告]
發(fā)表于 2010-03-15 10:09 |只看該作者
同樣的一段程序,在delphi中只要30ms,到perl中要3000ms一定要用perl的話,有其它辦法能變快嗎? 程序里for循環(huán) ...
yisn 發(fā)表于 2010-03-14 23:52




如果數(shù)據(jù)交互設(shè)計較好的話(比如使用了關(guān)系數(shù)據(jù)庫),那么可以用Perl的多進(jìn)程(or maybe threads?)來并發(fā)的解決任務(wù)。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-03-15 14:18 |只看該作者
回復(fù) 1# yisn


   
  1. foreach $i(1..37584806)
復(fù)制代碼
foreach這后面的變量會被看成是一個列表。所以你這個的數(shù)據(jù)將會很大,導(dǎo)致你內(nèi)存耗光。
像這么大的列表,建議使用循環(huán)代替。
  1. for(my $i=1,$i<=37584806;$i++)
復(fù)制代碼
或者用while

論壇徽章:
0
6 [報告]
發(fā)表于 2010-03-15 14:40 |只看該作者
回復(fù) 5# toniz


    我測試的是 foreach 最快,for 其次,while 最慢。

論壇徽章:
0
7 [報告]
發(fā)表于 2010-03-15 14:47 |只看該作者
回復(fù) 6# longbow0


    證明你機器性能不錯。  。 你可以試試把數(shù)字再調(diào)大,肯定會達(dá)到臨界值的。

論壇徽章:
0
8 [報告]
發(fā)表于 2010-03-15 15:01 |只看該作者
Dual-Core AMD Opteron(tm) Processor 2214 HE

4 G DDR2 RAM

不算太好吧?

論壇徽章:
0
9 [報告]
發(fā)表于 2010-03-15 17:55 |只看該作者
回復(fù) 5# toniz


    我開始也以為是這樣, 不過用while也是千ms級別的.

論壇徽章:
0
10 [報告]
發(fā)表于 2010-03-15 19:44 |只看該作者
回復(fù) 9# wind_ch


    是啊  你是對的  我也迷糊了 呵呵。
   發(fā)現(xiàn)foreach(1..1000000)這種方法是不會明顯消耗內(nèi)存的,如果把這個列表賦給數(shù)據(jù),內(nèi)存就立刻飆升。而直接用foreach的話內(nèi)存就變化不大。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP