前幾天發一下一個指令碼運行非常慢,使用time只能知道總的時間,卻無法確認原因,發現Devel::NYTProf是個很不錯的工具。
如果你有root許可權,則:
perl -MCPAN -e shell
>installJSON::Any(不安這個東東,在nyt產生html的時候會報warning,不是必須的)
>installDevel::NYTProf
如果你沒有root許可權,那麼:
- 在home目錄下建立一個檔案夾,比如 /home/username/perl.local
- 從http://search.cpan.org/~timb/Devel-NYTProf-4.06/lib/Devel/NYTProf.pm下載原始檔案到這個檔案夾
- 解壓縮,然後make
- 找到Makefile裡面的PREFIX,將值修改為 /home/username/perl.local
- 在 /home/username/perl.local下面建立一個local目錄
- 然後make install,完成安裝
- /home/username/perl.local下會多出bin,local,share目錄
- 修改環境變數,export PERL5LIB="$PERL5LIB:/home/username/perl.local/local/lib/perl/5.8.4"
運行perl -d:NYTProf /home/username/url_parser.pl,會在當前路徑下產生nytprof.out
運行 /home/username/perl.local/bin/nytprofhtml nytprof.out產生web頁面。
看看那個函數最耗時
看看那個語句最耗時
【參考】
- http://blog.sina.com.cn/s/blog_04268f4b0100moi9.html
- http://augustinalareina.wordpress.com/2011/02/05/getting-started-with-develnytprof/