| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 5518 人关注过本帖
标题:求小修改一下,小程序
只看楼主 加入收藏
a13780393
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2012-10-6
结帖率:25%
收藏
 问题点数:0 回复次数:1 
求小修改一下,小程序
我这有个perl的程序,比较简单,是统计字符百分比的程序。我的文件全是由ACGT四个字母组成的,除此之外没有别的字母,共18亿个字母。现在的问题是运行这个代码,报错:out of memory。就是内存不够用,怎么修改一下啊?文件中字母少的时候是可以用的。求!
 #!/usr/bin/perl
use strict;
 use warnings;
 open IN,"1.txt";
 open OUT,">2.txt";
 my $dna  = <IN>;
 my $revcom = $dna;
 $revcom =~ tr /acgt/ACGT/;
 my $gc = $revcom =~ tr/GC//;
 my $gc_content = sprintf( "%.2F", $gc / length($revcom) * 100 );
 my $at = $revcom =~ tr/AT//;
 my $at_content = sprintf( "%.2F", $at / length($revcom) * 100 );
 my $ALL = $revcom =~ tr/ACGT//;
 my $A = $revcom =~ tr/A//;
 my $C = $revcom =~ tr/C//;
 my $G = $revcom =~ tr/G//;
 my $T = $revcom =~ tr/T//;
 print OUT "GC数量:$gc\n";
 print  OUT "GC含量:${gc_content}%\n";
 print OUT "AT数量:$at\n";
 print  OUT "AT含量:${at_content}%\n";
 print OUT "A总数: $A\n";
 print OUT "C总数: $C\n";
 print OUT "G总数: $G\n";
 print OUT "T总数: $T\n";
 print OUT "ACGT总数: $ALL\n";
 close OUT;
 close IN;
 这个程序的问题,是我的数据在18亿个字符,提示信息是是超出内存(out of memory).
搜索更多相关主题的帖子: 字母 memory 百分比 
2012-11-27 11:33
岁月如刀
Rank: 6Rank: 6
来 自:冰冻星球
等 级:侠之大者
威 望:7
帖 子:165
专家分:477
注 册:2013-7-21
收藏
得分:0 
http://www.
Perl大文件模块:Tie-File

Now. Game over.
2013-07-22 00:01
快速回复:求小修改一下,小程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047130 second(s), 8 queries.
Copyright©2004-2022, BCCN.NET, All Rights Reserved