私は高価なJavaの文字列変換アルゴリズムが、EBCDICにあるテキストがUTF-16に変換する必要があるか、または大きなファイルを同様に変換するためにどれくらいのコストがかかっているのか疑問に思っていました。この変換のコストに関するベンチマークはありますか?複数のエンコーディングのベンチマークが良いでしょう。javaの文字列変換の変換はどれくらいの費用がかかりますか?
3
A
答えて
3
これはO(n)アルゴリズムです。実行するのにかかる時間は、変換する文字列の長さに比例して線形に増加します(非常に短い文字列を何百万も変換する場合は、関数呼び出しのオーバーヘッドが加算されます)。
ほとんどの場合、これはボトルネックにはなりません。あなたはおそらく非常に大きな文字列を無視した時間でサイズが数十メガバイトにエンコードすることができます。私は実際のベンチマークデータを持っていません。
1
私はそれがごくわずかだと思う。あなたが非常に大きなStringを変換している場合、何千ものStringを変換している場合や、巨大なバイト配列の割り当てを変換している場合、新しいStringオブジェクトの割り当てにかかるコストについては、より心配しています。しかし、極端な状況であっても。
0
これはかなり無視できるオーバーヘッドです - Javaの文字列アルゴリズムは一般的に非常に優れており、長年にわたり最適化されています。
これは、さらに効率的な特殊アルゴリズムを作成することはできず、おそらく数パーセントの特別なパフォーマンスのために最適化されたネイティブコードライブラリとインターフェースすることはできないと言っているわけではありません。しかし、エンコーディングがCPU時間のかなりの部分を占めているサーバーがたくさんある場合を除いて、その努力に値する価値はほとんどありません。
関連する問題
- 1. Javaが文字列から整数に変換されます
- 2. DevExpress TcxFilterOperatorKindを文字列に変換したり、文字列から変換したりできますか?
- 3. 文字列からintへの変換
- 4. 文字列からUnicodeへの変換
- 5. 文字列からラムダへの変換
- 6. Java:inetaddressから文字列への変換
- 7. 文字列からバイトへの変換
- 8. バイトから文字列への変換
- 9. Javaの.getClass()はどれくらいの費用がかかりますか?
- 10. StringComparison.CurrentCultureIgnoreCaseはC#の文字列の等価比較でどれくらいの費用がかかりますか?
- 11. 文字列から文字列への変換Struts 2での変換は機能しませんか?
- 12. バイナリコードはどのくらい正確に文字に変換されますか?
- 13. findall/finditerから変数または文字列への変換
- 14. Java(Solr)スレッドダンプはどれくらいの費用がかかりますか?
- 15. 文字列変換の配列からデータベースへの置換
- 16. 数値を文字列からJavaのテキストに変換する
- 17. ファイルをFileChooserからJavaの文字列に変換する
- 18. EbcdicファイルからJava文字列へのZoned Decimalの変換
- 19. 文字列からのNSDate変換が正しくありません
- 20. 文字列配列から文字列への変換Swift
- 21. 文字列 "yyyyMMdd"からjavaのカレンダーに変換
- 22. 文字列内の文字を置き換えるのに費用がかかりますか?
- 23. C++、文字列から文字配列への変換
- 24. spring mvc form bean文字列から文字列への変換
- 25. 16進文字列から16進文字列への変換
- 26. アクセス変換文字列「FEB 2017」から「
- 27. C#タイプ変換(文字列からint)
- 28. 日時変換のjava文字列への変換の問題
- 29. 16進文字列からASCII変換へのエラーはありますか?
- 30. 文字列から変換された関数が見つかりません