2009/9/23 空格 <ribozyme2004@gmail.com>
Yay! 我刚刚又对 appears 进行了一些改进,现发布 v0.02:
http://github.com/agentzh/appears/downloads
主要改动如下:
1. 代码命名调整:使用 token 来表示核苷,而非有歧议的 char 这个术语
2. 在代码中进一步去除“神秘的数”
3. 按 gcc 要求启用 large file 支持(原先的 v0.01 在 Linux 上读取 4 GB 的文件会报错: "Value too large for defined data type")
4. 添加了 t/gensample.pl 和 t/gensample.c 这两个程序,用来生成指定大小的随机序列文件(默认为 4.8 G)。
gensample.pl 和 gensample.c 的功能相同,但性能有明显差别:Perl 实现大约 1 秒生成 1 MB 的序列,而后者,即 C 实现, 1 秒大约生成 20 MB 的序列。
我使用 gensample.c 程序生成了一个 4 GB 大小的随机序列文件,其输出如下:
$ time t/gensample > samples/big.txt
real 2m25.392s
user 2m11.432s
sys 0m6.148s
$ ls -lh samples/big.txt
-rw-r--r-- 1 agentz agentz 4.0G 2009-09-24 10:20 samples/big.txt
$ time ./appears samples/big.txt > /tmp/out.txt
INFO: Reading file samples/big.txt...
INFO: Using a bit array of length 1073741824 (sequence length: 15).
INFO: Searching missing combinations of sequences...
real 7m36.456s
user 6m59.882s
sys 0m9.977s
在我的 Core2Duo T9600, SATA 7600rpm disk 的本本上,一共只需要 7 分半钟的时间,呵呵。
结果最好重定向到磁盘文件,就像上面所演示的那样,呵呵。
Cheers,从一个基因组中取了50M大小的一段序列测试了一下,比较成功。top显示的结果如下:
Yay! 我刚刚又对 appears 进行了一些改进,现发布 v0.02:
http://github.com/agentzh/appears/downloads
主要改动如下:
1. 代码命名调整:使用 token 来表示核苷,而非有歧议的 char 这个术语
2. 在代码中进一步去除“神秘的数”
3. 按 gcc 要求启用 large file 支持(原先的 v0.01 在 Linux 上读取 4 GB 的文件会报错: "Value too large for defined data type")
4. 添加了 t/gensample.pl 和 t/gensample.c 这两个程序,用来生成指定大小的随机序列文件(默认为 4.8 G)。
gensample.pl 和 gensample.c 的功能相同,但性能有明显差别:Perl 实现大约 1 秒生成 1 MB 的序列,而后者,即 C 实现, 1 秒大约生成 20 MB 的序列。
我使用 gensample.c 程序生成了一个 4 GB 大小的随机序列文件,其输出如下:
$ time t/gensample > samples/big.txt
real 2m25.392s
user 2m11.432s
sys 0m6.148s
$ ls -lh samples/big.txt
-rw-r--r-- 1 agentz agentz 4.0G 2009-09-24 10:20 samples/big.txt
$ time ./appears samples/big.txt > /tmp/out.txt
INFO: Reading file samples/big.txt...
INFO: Using a bit array of length 1073741824 (sequence length: 15).
INFO: Searching missing combinations of sequences...
real 7m36.456s
user 6m59.882s
sys 0m9.977s
在我的 Core2Duo T9600, SATA 7600rpm disk 的本本上,一共只需要 7 分半钟的时间,呵呵。
可以看到,appears占用了2G的内存的6.5%,正好是大约130M。和几位大大估算的非常一致。因为程序是把结果打印到屏幕的,所以
konsle有占用很多的cpu资源。
结果最好重定向到磁盘文件,就像上面所演示的那样,呵呵。
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论