从一个基因组中取了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 <[email protected]> wrote:
> 2009/9/23 agentzh <[email protected]>:
>
>
>
> > 今天晚些时候,我会提供一个 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 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复