从一个基因组中取了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 访问该论坛 -~----------~----~----~----~------~----~------~--~---
