如何才能提高速度的通用程序?

Eug*_*ash 3 formatting perl

我需要一个有效的commify过滤器或例程来与Template :: Toolkit一起使用.它将在页面上多次使用.它应该支持小数.

这个可以在Perl Cookbook中找到:

sub commify {
    my $text = reverse $_[0];
    $text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g;
    return scalar reverse $text;
}
Run Code Online (Sandbox Code Playgroud)

有更有效的方法吗?

bri*_*foy 8

在尝试优化任何内容之前,请确保它实际上是一个问题.使用分析器查找代码中的问题区域并关注这些区域.

该commify解决方案与您可以获得的一样好,但如果您需要绕过它,还有其他一些事情可以做:

  • 如果要重复汇总相同的数字,请使用Memoize之类的内容来缓存结果
  • 如果不可能改变,则预先计算所有数字.
  • 尽可能缓存已处理的模板
  • 对您的Web服务器使用反向代理设置,以便将大量处理交给后端服务器.