Test::LocalFunctions がパワーアップしました
ここで紹介した Test::LocalFunctions ですが、パワーアップ致しました。
@__papix__ さんが書かれた Test::LocalFunctions::Fast 取り込んだのが主な変更点です。
元々のTest::LocalFunctions は PPI を利用していましたが、
Test::LocalFunctions::Fast では Compiler::Lexer を使用しており動作が高速です。
今回のバージョンアップで
- Compiler::Lexer がインストールされていれば自動的に Test::LocalFunctins::Fast を利用する
- インストールされていなければ Test::LocalFunctions::PPI (元々のTest::LocalFunctions) を利用する
なお、Compiler::Lexer は requires では無く recommends として cpanfile に記述しているので、
Test::LocalFunctions と同時にCompiler::Lexer をインストールしたい場合は
$ cpanm Test::LocalFunctions --with-recommendsとすれば良いです。
Compiler::Lexer が必要ない場合は、普段通りに
$ cpanm Test::LocalFunctionsという具合にインストールすると良いでしょう。
以下はベンチマークの結果です。やはり Fast の方が高速ですね。
なので、特別な理由が無い限りは Compiler::Lexer を入れて、Fast で動作させた方が良いと思います。
#!/usr/bin/env perl use strict; use warnings; use Benchmark qw/:all/; use Test::More; use Test::LocalFunctions::PPI; use Test::LocalFunctions::Fast; cmpthese( timethese( 10000, { ppi => sub { Test::LocalFunctions::PPI::local_functions_ok( "lib/Test/LocalFunctions/Util.pm" ); }, fast => sub { Test::LocalFunctions::Fast::local_functions_ok( "lib/Test/LocalFunctions/Util.pm" ); }, })); done_testing; __DATA__ Rate ppi fast ppi 20.1/s -- -72% fast 72.6/s 262% --