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% --



Apr 26, 2002 (Fri) 1:11 - ふに

#~~~~
# それ以前にデータベースバックアップのために「必ず一日一回
# 以上どこかで止める」ことを前提に運用手順組んじゃうし
# 設計もしちゃうので、実はあまりホットバックアップって
# 考えてなかったりします。

いいなー...

Web系だと,それはなかなか...
それに,1日1回止めなくても運用できるのがOracleの
良いところなので,止めるのはなかなか納得してもらいにくいような.

DB2もオンラインバックアップ出来るのなら,その方が良い
気もしますが,リストアが面倒なのかな.(^^;

% Oracle で rman 使えば結構自動化されてるのでラクそうですけど.



Apr 26, 2002 (Fri) 1:33 - 株・・・

http://www.sanrio.co.jp/bus_info/kabu/kabu0801.html

こんな可愛い株ならほしいかも...

100株,いくらくらいなんだろう(^^;

AyaseHyo> 1110だから100株で11万円ってところかぁ

・・・むー.がんばれば買える?(^^;



Apr 26, 2002 (Fri) 22:33 - Perl栞

#任意雑談でそんな話題が出て,氷魚にゃに軽く作れない〜?
ってきいたら翌朝出来てました.

Perl栞

時間がないのでまだちゃんと使えるのかどうかすら確認
できてませんけど(^^;
興味あるひとはどうぞ.

----

山科です.

こんなの?

Debug/ Release/ はデバッグシンボルがあるかどうか〜.
おすきなほうで(笑)

Perl_Shiori.dll に load/unload/requestを実装してあります.
Perl_Shioro_test.exe を実行すると適当にメッセージ試せます(笑)

load時にカレントディレクトリの shiori.pl を読み込みます.
あとは対応してshiori.plの on_load/on_unload/on_request がよばれます.
サンプルのスクリプトは Perl_Shiori/ ディレクトリにあります.
Debug/ Release/ にコピーしてどうぞ.

on_loadは1つの引数をとって, それがloadの引数です.
復帰値が真偽値としてloadの復帰値になります.

on_unloadは引数ありません.
復帰値が真偽値としてunloadの復帰値になります.

on_loadは1つの引数をとって, それがloadの引数です.
復帰値を文字列として, requestの復帰値, len出力になります.


Perl_Shiori/ にVCのソースがあります.


あまり考えずにスクリプトみながらテストプログラム実行するのが
吉って感じ(笑)

でわ〜♪

----

hio_d> うちはShioriがなんなのか全然理解してないとかつけくわえたほうがよいかも?(笑)

ってことで,伺かと連携して動くかどうかすら(謎)な危険物です.
よろしくどうぞ〜



2002年04月
31
1
01
4
02
3
03
1
04
3
05
3
06
4
07
6
08
4
09
5
10
3
11
4
12
6
13
4
14
3
15
4
16
9
17
11
18
4
19
10
20
3
21
3
22
1
23
6
24
3
25
1
26
4
27
6
28
7
29
5
30
4
01
7
02
6
03
4
04
2

TmmDiary / Copyright 2001 Ymirlink,Inc. & Mikage Sawatari
このアドレスにはメールを送らないで下さい.
Don't send mail to this address.
hina@mikage.to