perl-unicode

FYI: Encode performance on Japanese encodings

2002-04-23 17:03:03
I was curious to find how fast or slow Encode is against popular Japanese transcoder modules. So I benchmarked and relieved that Encode's performance was good!

I benchmarked it against Jcode.pm (mine, too) and jcode.pl (the first and still popular transcoder available since Perl4 by Utashiro-san) and here is the result. Except for 7bit-jis (ISO-2022) <-> euc-jp Encode performed the best. And even for those losing against Jcode.pm, performance loss is not that big. Note Unicode conversion tests are missing from jcode.pl because they are unimplemented thereby.

The Japanese has one more good reason to switch to Perl 5.8.

Dan the Encode Maintainer.

==== 7bit-jis -> euc-jp ====
           Rate   Encode jcode.pl Jcode.pm
Encode   69.6/s       --     -16%     -40%
jcode.pl 83.1/s      19%       --     -29%
Jcode.pm  116/s      67%      40%       --
==== 7bit-jis -> shiftjis ====
           Rate Jcode.pm jcode.pl   Encode
Jcode.pm 14.6/s       --      -9%     -80%
jcode.pl 16.0/s       9%       --     -78%
Encode   71.9/s     393%     351%       --
==== 7bit-jis -> ucs2 ====
           Rate Jcode.pm   Encode
Jcode.pm 48.3/s       --     -26%
Encode   65.3/s      35%       --
==== 7bit-jis -> utf8 ====
           Rate Jcode.pm   Encode
Jcode.pm 31.9/s       --     -63%
Encode   86.5/s     171%       --
==== euc-jp -> 7bit-jis ====
           Rate jcode.pl   Encode Jcode.pm
jcode.pl 45.9/s       --     -32%     -60%
Encode   67.7/s      48%       --     -41%
Jcode.pm  114/s     149%      69%       --
==== euc-jp -> shiftjis ====
           Rate Jcode.pm jcode.pl   Encode
Jcode.pm 16.8/s       --     -16%     -92%
jcode.pl 20.0/s      19%       --     -90%
Encode    206/s    1129%     931%       --
==== euc-jp -> ucs2 ====
           Rate Jcode.pm   Encode
Jcode.pm 85.3/s       --     -47%
Encode    160/s      87%       --
==== euc-jp -> utf8 ====
           Rate Jcode.pm   Encode
Jcode.pm 44.9/s       --     -89%
Encode    400/s     791%       --
==== shiftjis -> 7bit-jis ====
           Rate Jcode.pm jcode.pl   Encode
Jcode.pm 13.3/s       --      -7%     -81%
jcode.pl 14.2/s       7%       --     -80%
Encode   70.7/s     434%     397%       --
==== shiftjis -> euc-jp ====
           Rate Jcode.pm jcode.pl   Encode
Jcode.pm 15.1/s       --     -25%     -93%
jcode.pl 20.1/s      33%       --     -90%
Encode    210/s    1285%     943%       --
==== shiftjis -> ucs2 ====
           Rate Jcode.pm   Encode
Jcode.pm 12.8/s       --     -93%
Encode    175/s    1270%       --
==== shiftjis -> utf8 ====
           Rate Jcode.pm   Encode
Jcode.pm 11.2/s       --     -98%
Encode    512/s    4456%       --
==== ucs2 -> 7bit-jis ====
           Rate Jcode.pm   Encode
Jcode.pm 61.8/s       --      -1%
Encode   62.4/s       1%       --
==== ucs2 -> euc-jp ====
          Rate Jcode.pm   Encode
Jcode.pm 138/s       --      -9%
Encode   151/s       9%       --
==== ucs2 -> shiftjis ====
           Rate Jcode.pm   Encode
Jcode.pm 14.9/s       --     -91%
Encode    162/s     989%       --
==== ucs2 -> utf8 ====
           Rate Jcode.pm   Encode
Jcode.pm 33.3/s       --     -87%
Encode    267/s     700%       --
==== utf8 -> 7bit-jis ====
           Rate Jcode.pm   Encode
Jcode.pm 59.5/s       --     -18%
Encode   72.7/s      22%       --
==== utf8 -> euc-jp ====
          Rate Jcode.pm   Encode
Jcode.pm 129/s       --     -44%
Encode   233/s      80%       --
==== utf8 -> shiftjis ====
           Rate Jcode.pm   Encode
Jcode.pm 14.7/s       --     -94%
Encode    261/s    1673%       --
==== utf8 -> ucs2 ====
           Rate Jcode.pm   Encode
Jcode.pm 50.6/s       --     -74%
Encode    191/s     278%       --

<Prev in Thread] Current Thread [Next in Thread>
  • FYI: Encode performance on Japanese encodings, Dan Kogai <=