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
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.
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.
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.
- 1. Wie teuer ist Typschluss?
- 2. Wie teuer ist ST_GeomFromText
- 3. Ist NSTimer teuer?
- 4. Ist die Verwendung von Attributen in .NET (C#) teuer?
- 5. Wie "teuer" ist Oracle Enterprise Manager?
- 6. Warum ist der Java-Methodenaufruf hier so teuer?
- 7. QBild zu QPixmap ist teuer
- 8. Wie teuer ist es, eine Cast-Operation Vs i ++ durchzuführen?
- 9. Wie teuer sind Fäden?
- 10. Verwendung von Destruktor/Finisierer teuer?
- 11. (Warum) Ist Reflection in .Net so teuer?
- 12. Wie teuer ist BufferedReader.read()? Wie lange zu schlafen, zwischendurch?
- 13. Wie teuer sind MySQL-Ereignisse?
- 14. Warum ist NHibernate AutoFlush so teuer?
- 15. Ist es teuer, Datenbankverbindungen offen zu halten?
- 16. Wie teuer sind NULL-Zeigerargumente?
- 17. Wie teuer ist eine datenbankweite Abfrage auf MongoDB?
- 18. Wie teuer ist die Erstellung von CloudStorageAccount- oder CloudBlobClient-Instanzen ab dem Zeitpunkt der Leistung?
- 19. ASP.NET Wie teuer ist es, eine Anwendungsvariable mehrmals aufzurufen?
- 20. Wie teuer ist es, eine Abrufanforderung in Core Data auszuführen?
- 21. Ist die CPU-Bandbreite bei Google App Engine einfach zu teuer oder ist es mein Code?
- 22. CPU teuer Javascript
- 23. Wie teuer es ist, ein neues UIWebView zu erstellen
- 24. MySQL-Abfragen - wie teuer sind sie wirklich?
- 25. Welcher ist in Bezug auf Ressourcen weniger teuer?
- 26. Wie teuer ist der Vergleich zweier ungeordneter Sätze für die Gleichheit?
- 27. Sind Enzyme/Reacts seicht teuer?
- 28. Ist das Abfragen in jQuery teuer, und gibt es Alternativen?
- 29. Teuer, System.Numerics.VectorX zu wickeln - warum?
- 30. Ist <Collection> .Count Teuer zu verwenden?