2009年9月23日星期三

Re: 一个基于位数组的序列覆盖率分析器 (Was Re: [PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?)

从一个基因组中取了50M大小的一段序列测试了一下,比较成功。top显示的结果如下:

op - 22:26:25 up 13:09, 1 user, load average: 1.20, 1.03, 0.86
Tasks: 144 total, 2 running, 142 sleeping, 0 stopped, 0 zombie
Cpu(s): 47.2% us, 3.2% sy, 0.0% ni, 49.7% id, 0.0% wa, 0.0% hi,
0.0% si
Mem: 2019000k total, 705476k used, 1313524k free, 13848k
buffers
Swap: 20972816k total, 429208k used, 20543608k free, 270020k
cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10886 ribozyme 20 0 57716 7092 4464 R 93 0.4 7:06.10 konsole
23717 ribozyme 20 0 130m 128m 676 S 7 6.5 0:40.05 appears
3509 ribozyme 20 0 410m 86m 18m S 1 4.4 59:36.64 firefox
2275 root 20 0 399m 31m 5948 S 1 1.6 17:12.06 X

可以看到,appears占用了2G的内存的6.5%,正好是大约130M。和几位大大估算的非常一致。因为程序是把结果打印到屏幕的,所以
konsle有占用很多的cpu资源。


On 9月23日, 下午6时04分, agentzh <agen...@gmail.com> wrote:
> 2009/9/23 agentzh <agen...@gmail.com>:
>
>
>
> > 今天晚些时候,我会提供一个 C++ 实现 ;)
>
> 刚刚写了一个 ANSI C++ 实现,呵呵,也不过 *180 行代码*,在 Linux 和 Win32 上进行了简单的测试。代码我作为 appears
> 项目放在了 GitHub 上面:
>
> http://github.com/agentzh/appears
>
> 如果没有 git 或者不熟悉 git,可以直接从下面的页面下载 v0.01 版的压缩包:
>
> http://github.com/agentzh/appears/downloads
>
> 解压后的编译和用法见 README 和 Makefile.
>
> 简单说来,在 Win32 上使用
>
> nmake -f NMakefile
>
> 来编译。然后用命令
>
> appears.exe input.txt
>
> 来分析输入文件 input.txt
>
> 在 Linux 上则直接
>
> make
>
> 程序用法是
>
> ./appears input.txt
>
> 为了测试方便,上面的项目构造过程还会生成 appears1 和 appears2 这两个程序,分别对应序列长度为 1 和 2 的情形(默认的
> appears 对应 15)。
>
> 仅进行了简单的测试,欢迎同学们提供更彻底的基于 Perl 的测试集,哈哈!
>
> 在 Linux 利用 pmap 检查 appears 程序的内存占用情况:
>
> total 134036K
>
> *果然只有 100 多 MB 的 RAM 占用*,哈哈!
>
> 稍后,我得空了,再利用 Inline 模块封装为 Perl 可调用的形式,呵呵。
>
> C++ 写得不好,欢迎大家指正 :)
>
> Cheers,
> -agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: