今天试着写了一下,确实对内存的消耗很大。我正在想办法。。。
On 9月22日, 上午10时20分, 黄浩 <huanghao19...@gmail.com> wrote:
> 可以每次处理一部分, 分而治之。
> 为了提高运行效率,Perl的实现采取是典型的用空间换时间的做法。所以对内存消耗特别大,而如果用hash的话,消耗就会更大。所以只能每次读一部分到内存,一段段的处理。
>
> 2009/9/22 Jester <jes...@perlchina.org>
>
>
>
> > bioperl好像没有这样的用法......
> > 这种hash直接处理当然是最简单的,不过我觉得可能需要考虑一下内存的问题。
> > 我遇到过处理比较大的序列时,一不小心就out of memory了。:(
> > 不知道哪位有比较节约内存的方法?
>
> > Jester,jes...@perlchina.org
> > 2009-09-22
> > ----- Original Message -----
> > From: Qiang (James) Li
> > To: perlchina
> > Sent: 2009-09-22, 00:03:19
> > Subject: [PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?
>
> > >2009/9/21 空格 :
> > >> 有一个长度为4.8G的字符串,其中只有四种字母ATGC。按照排列组合数,这四个字母组成的长度为15字符串总共有1`073`741`824种可能
> > >> 性。我想统计一下,这个大字符串中是否包含了所有的长度为15的可能的字串。如果没有包含全部,那么有哪些字串的出现次数为零。
> > >> 为此,我想需要建立一个很大的表,然后从那个超大的字符串中逐个取出长度为15的字串,然后在表中统计其出现次数。这样可以得到结果。
>
> > >不知道 bioperl 里是否有现成的工具,偶不是搞生物的。
>
> > >不过你匹配的时候把满足要求的用 $hash{...}++ 直接统计就可以了,不用把不符合要求的也放到 hash 里。
>
> > >> 我的问题是,这样大的表格,用散列写好还是用二维数组写比较好?或者有什么别的方式实现更可行一些。
>
> > >hash 即可。
>
> > >Qiang
>
> --
> 此致,
> 敬礼!
>
> 黄浩
> 国家高性能计算机工程技术研究中心
> 中国科学院计算技术研究所
> 工作电话:01062600552
> Email:huang...@nrchpc.ac.cn
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论