String Tokenize 機能、速度比較


簡易ベンチマークを作ってみた。二次元配列に関するテストで、処理能力の速さを試すというもの。

stringtokenizer_speed_test

スクリーンショットで解説

まだアイコンもエクステ名も決まっていないので一般公開されている DIME のアイコンを利用している。

左がオリジナルのエクステで、右が本家の String Tokenizer 機能を試した結果などが出力される。

中央上のリストは負荷テストの結果を出力しているログで、計測にかかった時間などが出力されている。ただし時差計測に関しては CF25 内部のタイマーを使っているため全然正確ではありません。

Delta は時差を表す

対象データは 30000 文字( 30Kb )を HTTP GET 機能で直接メモリへ格納して、そこから実験スタート。

まず 30000 文字程度だと本家の String Tokenizer もそこそこ速いため、古い CPU の処理能力でも 1 FPS 以内の分割処理が可能。

1 FPS 以内の処理だと 1/60 秒の場合、16.666666666666667 ミリ秒。つまりデルタが「16」の近似値だったらほぼ 1 FPS 以内に処理を終えることができてる 16 ミリ秒を示す。両方共 1 FPS 以内に処理を終えてしまうと比較にならないためここから負荷を高めてやる。

負荷を高める方法は高速ループで同じ処理を繰り返し処理させるというもの。高速ループ自体が遅いけどキニシナイキニシナイ。さて、結果から見てみよう。

stringtokenizer_speed_test_topic

負荷を高めた結果

DIME Custom は ループ処理で 30 回ほど 30000 文字を分割処理しても 1 FPS 以内に処理を終えてるっぽい「16」の近似値が出た。

一方本家の String Tokenizer は「46〜61」なので少なくとも 1 FPS 以内どころではない。処理するデータ量にもよるけど通常ほぼ二倍、条件によっては三倍程度の速さで DIME Custom は処理を終えることができる。

icons_String_tokenizer

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です