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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 6487 | 回復(fù): 12
打印 上一主題 下一主題

【求助】關(guān)于一個(gè)out of memory的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
1
金牛座
日期:2013-09-06 08:50:31
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-12-22 21:58 |只看該作者 |倒序?yàn)g覽
32G的內(nèi)存,在運(yùn)行一個(gè)perl腳本時(shí)提示out of memory!
以下是程序的一部分,有人知道么?
  1. #@{$fh{$key}}存儲(chǔ)文件名為$key的文件內(nèi)容;
  2. #所有的key文件讀完之后內(nèi)存使用在1.5G左右;
  3. #以下是程序的一部分;
  4. for my $in(@file){                            #   9個(gè)輸入文件@file大小總共在20M左右;
  5.         open IN,"<","$in" or die "Can't open $in!\n";
  6.         my @array;
  7.         map {chomp;next if(/^\s*$/);push @array,[split('\t',$_)]} <IN>;            
  8.         close IN;
  9.         open OUT,">","$in.out";
  10.         for my $gene(@array){
  11.                 my $num=0;
  12.                 foreach my $line(@{$fh{$gene->[0]}}){
  13.                         last if ($gene->[1] <= $line);
  14.                         $num++ if ($line > $gene->[1]);     
  15.                 }
  16.                 print OUT "$num\n";
  17.         }
  18.         close OUT;
  19. }
復(fù)制代碼

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書徽章
日期:2014-03-05 01:33:12技術(shù)圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
2 [報(bào)告]
發(fā)表于 2013-12-23 01:04 |只看該作者

在第7行有一個(gè)錯(cuò)誤,但問(wèn)題不是在這里~

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報(bào)告]
發(fā)表于 2013-12-23 06:41 |只看該作者
map不應(yīng)該這么用。你該用foreach/for循環(huán)

你把代碼寫的可讀性高一些,錯(cuò)誤就很容易檢查出來(lái)了

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-12-23 08:32 |只看該作者
邊讀邊寫就沒(méi)問(wèn)題了。

論壇徽章:
1
金牛座
日期:2013-09-06 08:50:31
5 [報(bào)告]
發(fā)表于 2013-12-23 09:34 |只看該作者
回復(fù) 4# 大米白面
邊讀邊寫太慢了,所以我想一次性全讀進(jìn)去,感覺不是內(nèi)存的問(wèn)題,因?yàn)?G和32G的電腦都卡在差不多的地方就停了。


   

論壇徽章:
1
金牛座
日期:2013-09-06 08:50:31
6 [報(bào)告]
發(fā)表于 2013-12-23 09:48 |只看該作者
本帖最后由 飛越地平線 于 2013-12-23 10:09 編輯

回復(fù) 3# py
@rubyish

是什么錯(cuò)誤?語(yǔ)法沒(méi)有提示錯(cuò)誤,我以為是正常的。。
我用8G的和32G的電腦跑了下,都差不多在生成1.3M大小的文件的時(shí)候停住了。不知道是什么原因?
本人菜鳥,才剛學(xué)編程,還沒(méi)有遇到過(guò)out of memory的問(wèn)題。。求大神指點(diǎn)指點(diǎn)。。

論壇徽章:
46
15-16賽季CBA聯(lián)賽之四川
日期:2018-03-27 11:59:132015年亞洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49雙魚座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亞冠之布里斯班獅吼
日期:2015-07-13 10:44:56
7 [報(bào)告]
發(fā)表于 2013-12-23 10:47 |只看該作者
map 里面那個(gè) next 作用的是外層的 for my $in (@file) { 循環(huán)

錯(cuò)誤有語(yǔ)法錯(cuò)誤這個(gè)編譯器可以幫你,但還有邏輯錯(cuò)誤

論壇徽章:
1
金牛座
日期:2013-09-06 08:50:31
8 [報(bào)告]
發(fā)表于 2013-12-23 10:54 |只看該作者
回復(fù) 7# zhlong8
以前也犯過(guò)這個(gè)錯(cuò)誤。。,這次又犯了一次!

   

論壇徽章:
1
金牛座
日期:2013-09-06 08:50:31
9 [報(bào)告]
發(fā)表于 2013-12-23 12:00 |只看該作者
回復(fù) 2# rubyish
  1. #@{$fh{$key}}存儲(chǔ)文件名為$key的文件內(nèi)容;
  2. #所有的key文件讀完之后內(nèi)存使用在1.5G左右;
  3. #以下是程序的一部分;
  4. my @file = glob "$dir\\*bed";
  5. my @bed = glob "$dir3\\*";

  6. for (@bed){
  7.         my $name = $_;
  8.         $name =~ s/.*bed_(.+)_(.+)\.bed/$1$2/;
  9.         $fdir{$name} = $_;
  10. }
  11. while(my ($key, $value)= each %fdir){
  12.         open BED,"<","$fdir{$key}" or die "Can't open file: $key!\n";
  13.         @{$fh{$key}} = map {
  14.                                                 chomp;
  15.                                                 (split '\t')[2];
  16.                                                 } <BED>;
  17.         close BED;
  18. }

  19. print "Begin\n";
  20. for my $in(@file){                            #   9個(gè)輸入文件@file大小總共在20M左右;
  21.         open IN,"<","$in" or die "Can't open $in!\n";
  22.         my @array;
  23.                 while(<IN>){
  24.                         chomp;
  25.                         next if(/^\s*$/);
  26.                         push @array,[split('\t',$_)];
  27.                 }
  28.         close IN;
  29.         open OUT,">","$in.out";
  30.         for my $gene(@array){
  31.                 my $num=0;
  32.                 foreach my $line(@{$fh{$gene->[0]}}){               #平均有1800000行;
  33.                         last if ($gene->[1] <= $line);
  34.                         $num++ if ($line > $gene->[1]);     
  35.                 }
  36.                 print OUT "$num\n";
  37.         }
  38.         close OUT;
  39. }
復(fù)制代碼
大俠們,代碼差不多就是這樣了;
但是還是有問(wèn)題,我用的是win7,內(nèi)存使用在4.5G的時(shí)候就提示out of memory了。電腦內(nèi)存有8G

   

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書徽章
日期:2014-03-05 01:33:12技術(shù)圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
10 [報(bào)告]
發(fā)表于 2013-12-24 02:48 |只看該作者
哦。水平有限, 看不出生成 out of memory 的問(wèn)題。
你貼文件內(nèi)容,說(shuō)你的意圖, 幫你改寫也許更快解決問(wèn)題。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP