● Apr 26, 2002 (Fri) 0:37 - ゆにこーどー Jcode5-ML に Encode vs Jcode.pm vs jcode.pl の ベンチマーク記事が流れていて,Encode は速い! というような内容だったので,Unicode::Japanese は どの程度速いかテストしてみることに. 弾さんにメールして,ベンチスクリプトを入手. breadperl で実行してね,といわれたけど意味がわからず(^^; breadperl というのは,CVS から取ってきた 最新スナップショットらしぃ... rsync -avz rsync://ftp.linux.activestate.com/perl-current . でゲットしたら,カレントディレクトリにどば〜(爆) あわてて止めて,ディレクトリの中で再実行. そして,ようやく実行してみると,エラーで止まる‥‥‥ どうやら変換結果が違うらしい. ちなみに,原因は,Unicode::Japanese は CP932 の マッピングを使用しているのに対し,Encode/Jcodeは Shift_JIS のマッピングを使用しているために 起きた物らしい... で,肝心のベンチ結果は‥‥‥以下の通り. ソースも改行とんでてダメでした(汗). Unicode::Japanese で XS 化されてるのは EUCJP <-> SJIS JIS <-> SJIS SJIS <-> UTF-8 しかないので,その他は多段階変換. UTF-8 <-> UCS2 などは PurePerl コードでの変換に なるので,劇的に遅い(^^; それ以外はかなり好成績な感じ♪ ==== 7bit-jis -> euc-jp ==== Rate Encode jcode.pl Jcode.pm Unicode::Japanese Encode 43.2/s -- -9% -39% -77% jcode.pl 47.4/s 10% -- -33% -75% Jcode.pm 70.3/s 63% 48% -- -63% Unicode::Japanese 188/s 335% 297% 168% -- ==== 7bit-jis -> shiftjis ==== Rate Jcode.pm jcode.pl Encode Unicode::Japanese Jcode.pm 9.97/s -- -3% -79% -97% jcode.pl 10.2/s 3% -- -79% -97% Encode 47.8/s 379% 366% -- -86% Unicode::Japanese 337/s 3279% 3189% 605% -- ==== 7bit-jis -> ucs2 ==== Rate Unicode::Japanese Jcode.pm Encode Unicode::Japanese 17.5/s -- -38% -60% Jcode.pm 28.1/s 61% -- -35% Encode 43.2/s 147% 54% -- ==== 7bit-jis -> utf8 ==== Rate Jcode.pm Encode Unicode::Japanese Jcode.pm 19.6/s -- -64% -95% Encode 54.7/s 179% -- -87% Unicode::Japanese 427/s 2073% 680% -- ==== euc-jp -> 7bit-jis ==== Rate jcode.pl Encode Jcode.pm Unicode::Japanese jcode.pl 30.2/s -- -41% -65% -88% Encode 51.2/s 70% -- -40% -79% Jcode.pm 85.3/s 183% 67% -- -65% Unicode::Japanese 246/s 715% 381% 188% -- ==== euc-jp -> shiftjis ==== Rate Jcode.pm jcode.pl Encode Unicode::Japanese Jcode.pm 11.6/s -- -20% -93% -97% jcode.pl 14.5/s 24% -- -91% -96% Encode 164/s 1310% 1033% -- -51% Unicode::Japanese 337/s 2795% 2226% 105% -- ==== euc-jp -> ucs2 ==== Rate Unicode::Japanese Jcode.pm Encode Unicode::Japanese 19.0/s -- -61% -84% Jcode.pm 48.1/s 153% -- -59% Encode 119/s 524% 146% -- ==== euc-jp -> utf8 ==== Rate Jcode.pm Encode Unicode::Japanese Jcode.pm 27.1/s -- -91% -94% Encode 291/s 973% -- -36% Unicode::Japanese 457/s 1586% 57% -- ==== shiftjis -> 7bit-jis ==== Rate jcode.pl Jcode.pm Encode Unicode::Japanese jcode.pl 9.40/s -- -0% -82% -97% Jcode.pm 9.44/s 0% -- -82% -97% Encode 52.0/s 454% 451% -- -85% Unicode::Japanese 356/s 3683% 3667% 583% -- ==== shiftjis -> euc-jp ==== Rate Jcode.pm jcode.pl Encode Unicode::Japanese Jcode.pm 10.8/s -- -25% -93% -95% jcode.pl 14.5/s 34% -- -91% -93% Encode 164/s 1415% 1033% -- -21% Unicode::Japanese 206/s 1806% 1326% 26% -- ==== shiftjis -> ucs2 ==== Rate Jcode.pm Unicode::Japanese Encode Jcode.pm 8.80/s -- -55% -93% Unicode::Japanese 19.5/s 122% -- -84% Encode 123/s 1298% 531% -- ==== shiftjis -> utf8 ==== Rate Jcode.pm Encode Unicode::Japanese Jcode.pm 7.69/s -- -98% -99% Encode 356/s 4522% -- -67% Unicode::Japanese 1067/s 13767% 200% -- ==== ucs2 -> 7bit-jis ==== Rate Unicode::Japanese Encode Jcode.pm Unicode::Japanese 35.0/s -- -22% -25% Encode 45.1/s 29% -- -3% Jcode.pm 46.4/s 33% 3% -- ==== ucs2 -> euc-jp ==== Rate Unicode::Japanese Jcode.pm Encode Unicode::Japanese 36.0/s -- -64% -68% Jcode.pm 100/s 178% -- -11% Encode 112/s 212% 12% -- ==== ucs2 -> shiftjis ==== Rate Jcode.pm Unicode::Japanese Encode Jcode.pm 10.5/s -- -71% -92% Unicode::Japanese 36.8/s 249% -- -71% Encode 128/s 1114% 248% -- ==== ucs2 -> utf8 ==== Rate Jcode.pm Unicode::Japanese Encode Jcode.pm 21.3/s -- -44% -88% Unicode::Japanese 38.3/s 80% -- -78% Encode 178/s 733% 364% -- ==== utf8 -> 7bit-jis ==== Rate Jcode.pm Encode Unicode::Japanese Jcode.pm 44.8/s -- -15% -90% Encode 52.5/s 17% -- -88% Unicode::Japanese 427/s 853% 713% -- ==== utf8 -> euc-jp ==== Rate Jcode.pm Encode Unicode::Japanese Jcode.pm 95.5/s -- -45% -78% Encode 173/s 81% -- -59% Unicode::Japanese 427/s 347% 147% -- ==== utf8 -> shiftjis ==== Rate Jcode.pm Encode Unicode::Japanese Jcode.pm 10.5/s -- -94% -99% Encode 183/s 1634% -- -74% Unicode::Japanese 711/s 6644% 289% -- ==== utf8 -> ucs2 ==== Rate Unicode::Japanese Jcode.pm Encode Unicode::Japanese 19.1/s -- -40% -86% Jcode.pm 31.8/s 67% -- -77% Encode 136/s 613% 328% -- |
|