2012-03-25 66 views
1

有什麼不同的方法可以用不同的方式編譯Perl,這樣可以真正提高在該機器上運行的Perl腳本的性能?雖然過時了,但似乎表明,通過編寫不同的東西可以獲得不同的性能結果。是這樣,還是我誤解了一些東西?編譯Perl以提高性能

沒有使用默認的Perl軟件包(或在Linux中默認安裝的軟件包)會有性能提升嗎?

+6

[請記住優化俱樂部的規則](http://stackoverflow.com/a/177132/554546)。 – 2012-03-25 04:45:02

+3

您是否有一個Perl應用程序因運行所需時間而導致問題? – Borodin 2012-03-25 05:09:12

+1

@Borodin我的興趣更多的是讓程序花費更少的時間來運行,以便利用更少的CPU時間,使我能夠在機器上做更多的事情。 – GoldenNewby 2012-03-25 05:29:31

回答

2

我從來沒有測量過這個,但我被引導認爲沒有線程的perl編譯速度提高了10%。我不確定這是「平均」還是「某些操作」,或者它是否屬實。

大多數(或所有?)Linux發行版附帶的perl是用線程編譯的。

基於此,如果您構建自己的perl沒有線程,它應該更快。順便說一句,這是你用默認標誌編譯時得到的。

斯特芬Schwingon已經做了一些性能測試,並在這裏對他們說: http://blogs.perl.org/users/steffen_schwigon/2012/01/perlformance.html

如果做了一些測試,並顯示了一定的成效這將是很好。

+0

這很有趣,因爲我發現對於資源使用,我實際上保存的是使用fork而不是使用Perl的線程(在Linux上) – GoldenNewby 2012-03-27 05:39:52

+0

10%是正確的。在RedHat提供的Perl下運行的MailScanner每秒掃描約1,000條消息(在我們的設置中)。使用定製的Perl(或更準確地說,默認設置),它每秒鐘處理大約1100條消息。 – Duncan 2013-01-08 23:44:49