这是真的两个问题,但他们是如此相似,为了保持简单,我想我只是把他们在一起:
>首先:给定一个已经建立的Perl项目,什么是一些体面的方式来加速它,而不仅仅是简单的代码内优化?
>第二:当从头开始在Perl中编写程序时,有什么好的方法可以大大提高性能?
对于第一个问题,想象你被一个写得很好的项目,你需要提高性能,但是你似乎不能通过重构/优化获得大量的收益。你会做什么来加快它在这种情况下,重写它在类似C?
请不要使用一般优化技术,除非它们是Perl专用的。
解决方法
请记住优化俱乐部的规则:
>优化俱乐部的第一条规则
是,你不优化。
>优化俱乐部的第二条规则是,你不优化而不测量。
>如果您的应用程序运行速度比底层传输协议快,则优化结束。
>一次一个因素。
>没有刺青,没有刺青时间表。
>测试将继续,只要它有。
>如果这是你在Optimization Club的第一个晚上,你必须写一个测试用例。
因此,假设你实际上有工作代码,在Devel::NYTProf下运行你的程序。
找到瓶颈。然后回到这里告诉我们他们是什么。
如果你没有工作代码,让它工作第一。你将做的最大的优化是从非工作到工作。