2009-04-22 8 views
3

Ich frage mich, wie teuer Java-String-Codierung Konvertierungsalgorithmen sind, zum Beispiel für ein Stück Text in EBCDIC, die in UTF-16 oder für eine ähnliche Konvertierung einer großen Datei konvertiert werden muss. Gibt es Benchmarks für die Kosten dieser Konvertierung? Benchmarks für mehrere Kodierungen wären besser.Wie teuer ist die String-Encoding-Konvertierung von Java?

Antwort

3

Dies ist ein O (n) -Algorithmus. Die für die Ausführung benötigte Zeit erhöht sich mehr oder weniger linear mit der Länge der zu konvertierenden Zeichenfolge (wenn Sie jedoch Millionen sehr kurzer Zeichenfolgen konvertieren, wird der Aufwand der Funktionsaufrufe dazu addiert).

In fast allen Situationen wird dies kein Engpass sein. Sie könnten wahrscheinlich sehr große Strings mit einer Größe von mehreren zehn Megabyte in vernachlässigbarer Zeit codieren. Ich habe jedoch keine tatsächlichen Benchmark-Daten.

1

Ich vermute, dass es vernachlässigbar ist. Ich wäre besorgt über die Kosten für die Zuweisung neuer String-Objekte, wenn Sie Tausende von Strings konvertieren, oder die Zuweisung von großen Byte-Arrays, wenn Sie sehr große Strings konvertieren. Aber auch dann nur unter extremen Umständen.

0

Es ist ein ziemlich vernachlässigbarer Overhead - die String-Algorithmen von Java sind im Allgemeinen sehr gut und wurden im Laufe der Jahre gut optimiert.

Das heißt nicht, dass es nicht möglich wäre, einen noch effizienteren spezialisierten Algorithmus oder vielleicht eine Schnittstelle zu einer optimierten nativen Codebibliothek für ein paar Prozent zusätzliche Leistung zu erstellen. Aber wenn Sie nicht viele Server haben, bei denen die Kodierung einen erheblichen Anteil der CPU-Zeit beansprucht, ist es wahrscheinlich nicht die Mühe wert.

Verwandte Themen