perl - 使用 inline::C 来加速数学是否值得

标签 perl optimization performance inline-c

我一直在研究处理大量 dna 的 perl 程序。它输出的正是我需要的,但是它比我想要使用 NYTprof 花费的时间要长得多,我已经缩小了主要问题领域,成为将我的值加在一起的循环。使用 inline::C 进行数学运算会使我的程序更快还是我应该接受速度并继续前进?还有其他方法可以提高速度吗? here是我的程序和它会运行的输入以及已输入默认值的可执行文件。

最佳答案

您不太可能在这里得到有用的帮助(包括在内)。我可以看到您的代码存在各种问题,与语言选择无关。

  • 使用 CPAN。如果您正在解析 genbank,请使用一些 an appropriate module .
  • 你正在用 Perl 编写程序集,Perl 和你都不擅长。当您不将参数传递给子程序,而是到处依赖全局变量时,几乎不可能知道发生了什么。做什么@X1, @X2, @Y1, @Y2意思?
  • 以下可能是您的问题:until ($ender - $starter > $tlength) { (第 153 行)。根据您的测试用例,这些从 103、1 和 200 开始,并且不清楚它们何时或是否发生变化。取决于 @te 中的内容,它可能会也可能不会跳出循环;我只是无法从您的代码中看出。
  • 如果我们确切地知道 add 的参数是什么,那将会有所帮助。 ,输入输出不变量,以及它返回的内容。

  • 这就是我得到的。

    关于perl - 使用 inline::C 来加速数学是否值得,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588119/

    相关文章:

    perl - 如何在perl中在同一范围内重新声明变量?

    perl - Catalyst 中的调试屏幕更简洁?

    arrays - 优化 3D 阵列上的函数速度

    python - 代码重复和性能之间的权衡

    javascript - 在 javascript 中滚动时隐藏标题的性能问题

    asp.net - 考虑 N2 CMS 但担心性能。这合理吗?

    perl - shell 命令在 perl 脚本中的不同结果

    linux - 一个用于计算按键排序的字段的平均值的单行?

    python - gekko 中的变量索引

    mysql - 合并 2 个表太慢