2009-04-22 5 views
3

私は高価なJavaの文字列変換アルゴリズムが、EBCDICにあるテキストがUTF-16に変換する必要があるか、または大きなファイルを同様に変換するためにどれくらいのコストがかかっているのか疑問に思っていました。この変換のコストに関するベンチマークはありますか?複数のエンコーディングのベンチマークが良いでしょう。javaの文字列変換の変換はどれくらいの費用がかかりますか?

答えて

3

これはO(n)アルゴリズムです。実行するのにかかる時間は、変換する文字列の長さに比例して線形に増加します(非常に短い文字列を何百万も変換する場合は、関数呼び出しのオーバーヘッドが加算されます)。

ほとんどの場合、これはボトルネックにはなりません。あなたはおそらく非常に大きな文字列を無視した時間でサイズが数十メガバイトにエンコードすることができます。私は実際のベンチマークデータを持っていません。

1

私はそれがごくわずかだと思う。あなたが非常に大きなStringを変換している場合、何千ものStringを変換している場合や、巨大なバイト配列の割り当てを変換している場合、新しいStringオブジェクトの割り当てにかかるコストについては、より心配しています。しかし、極端な状況であっても。

0

これはかなり無視できるオーバーヘッドです - Javaの文字列アルゴリズムは一般的に非常に優れており、長年にわたり最適化されています。

これは、さらに効率的な特殊アルゴリズムを作成することはできず、おそらく数パーセントの特別なパフォーマンスのために最適化されたネイティブコードライブラリとインターフェースすることはできないと言っているわけではありません。しかし、エンコーディングがCPU時間のかなりの部分を占めているサーバーがたくさんある場合を除いて、その努力に値する価値はほとんどありません。

関連する問題