内联子例程perl

Jaya Surya S Athikesavan

我有一个Perl函数,该函数不返回任何值。它也不需要任何参数。

sub test {
    #do my logic
}

我可以这样做:

sub test() {
    #do my logic
}

是否会内联子例程测试这样行吗?(这意味着函数调用将被函数定义替换。我的程序执行得更快吗?)

函数test()被调用5000次。而且我的Perl程序执行时间比预期的要长。所以我想让我的程序更快。提前致谢!

出租

在perlsub中的常量函数中得到了回答

具有原型的函数()可能是内联的候选对象。如果优化和常量折叠后的结果是常量或没有其他引用的词法范围标量,则将使用它代替不带的函数调用&使用&进行的呼叫永远不会内联。(请参阅参考资料constant.pm,以方便地声明大多数常量。)

因此,sub test()如果满足上述条件,则应该内联。没有人看不到该功能,所以要么显示它要么尝试。

使用B :: Deparse可以很容易地检查到,请参阅链接perlsub部分的进一步内容。

我敦促您对程序进行概要分析,以确保函数调用开销是问题所在。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章