¿Desde un punto de vista de los recursos es razonable usar un StringBuilder para concaturar dos cadenas o hay una operación mínima de concatenación que hace que StringBuilder sea eficiente?Concatenación con StringBuilder
Respuesta
String.Join es el más rápido ya que asigna toda la memoria requerida en una sola operación. Ver este artículo: StringBuilder vs. String/Fast String Operations with .NET 2.0
Para solo dos cadenas, '+' es más legible y igual de eficiente. – Brian
Concatenar dos cadenas con StringBuilder no le dará ningún beneficio, ya que el resultado todavía tiene que convertirse en una cadena, por lo que concatenarlas directamente es una asignación + dos copias. StringBuilder no puede hacer nada mejor, solo desordenar su código.
Si usted está haciendo la pregunta, es probable que tomar una decisión sobre qué técnica utilizar con el fin de obtener un buen rendimiento.
Si está intentando obtener un buen rendimiento, probablemente tenga un conjunto de pruebas de rendimiento cuidadosamente diseñadas que muestren claramente las diferencias entre dos técnicas diferentes, medidas a lo largo de un conjunto de escenarios de rendimiento realistas centrados en el usuario.
Si tiene una suite de este tipo, ¿por qué nos pregunta? ¡Simplemente ejecute las dos formas y vea cuál le ofrece un mejor rendimiento!
Si no tiene una suite de este tipo, , nunca obtendrá un buen rendimiento de una aplicación lenta haciendo preguntas a personas al azar en Internet que no conocen a sus clientes, su código o sus escenarios . Cree usted mismo un conjunto de pruebas de rendimiento cuidadosamente diseñadas que le permita medir la diferencia entre dos técnicas y compararlas con un conjunto realista de objetivos de rendimiento centrados en el usuario.
En primer lugar, es su curiosidad. Tampoco necesito un conjunto de pruebas de rendimiento cuidadosamente diseñadas, porque mis proyectos son realmente pequeños y tampoco tengo un problema que deba optimizar mis programas en un área tan baja como es la concatenación de dos cadenas. Pero muchas personas hablan sobre el uso de StringBuilder y esto me hizo curioso si hay una cantidad mínima en el punto de equilibrio. También existen preguntas sin gran importancia, pero si hay una plataforma para preguntar, ¿por qué no preguntar? Y si está por debajo de tu nivel, ignora la pregunta. –
Lo siento Eric, tenía que votar abajo aquí: su respuesta parecía un poco grosera y definitivamente no fue útil. Sorprendente viniendo de un desarrollador sénior en el equipo compilador de C# (¡un producto por el que tengo muchísimo respeto)! –
Stephen, ¿qué tiene de grosero la respuesta de Eric? OMI, su respuesta es genial. Si no tiene problemas de rendimiento, no se preocupe por StringBuilder, preocúpese de escribir un código legible que resuelva su problema comercial. Si tiene un problema de rendimiento, primero DEBE crear un perfil del código y luego trabajar en los puntos críticos identificados por el generador de perfiles. Simplemente no hay otra manera. – SolutionYogi
- 1. Android StringBuilder vs Concatenación de cadenas
- 2. .NET Concatenación de cadenas (+ y + =) vs. StringBuilder
- 3. Concatenación de cadenas insegura en C#, ¿necesita usar StringBuilder?
- 4. Concatenación de cadenas en Java: cuándo usar +, StringBuilder y concat
- 5. ¿StringBuilder usa más memoria que la concatenación de cadenas?
- 6. StringBuilder en Flex
- 7. java outOfMemoryError con stringbuilder
- 8. Adjuntar con StringBuilder
- 9. ¿Por qué usar StringBuilder explícitamente si el compilador convierte la concatenación de cadenas en un StringBuilder automáticamente?
- 10. Concatenación de cadenas con o sin .ToString()?
- 11. Cadenas de concatenación con
- 12. StringBuilder vs Cadena considerando reemplazar
- 13. ¿Hay un método más rápido que StringBuilder para una concatenación máxima de 9-10 pasos?
- 14. ¿Por qué la concatenación de cadenas no se convierte automáticamente a StringBuilder en C#?
- 15. Concatenación de cadenas con espacios
- 16. concatenación de cadenas con Null
- 17. Java: StringBuffer y concatenación
- 18. StringBuilder o + =
- 19. Scala StringBuilder
- 20. capacidad StringBuilder()
- 21. C# o Java: ¿Prefijo cadenas con StringBuilder?
- 22. Diccionarios Concatenación
- 23. Concatenación Tupla
- 24. Cadena de concatenación vs String Builder. Rendimiento
- 25. lotes Concatenación
- 26. ¿Estoy minando la eficiencia de StringBuilder?
- 27. Eficiencia de concatenación de cadenas de Java
- 28. Concatenación de cadenas Groovy con comprobaciones nulas
- 29. Cadena de concatenación con variable en smarty
- 30. Problema con Ruby concatenación de cadenas
Esta respuesta realmente merece más votos positivos, en la práctica, este es exactamente el consejo a seguir: StringBuilder en bucles, métodos de concatenación de clase String para un número fijo de cadenas. –
De hecho, debería ser la respuesta aceptada. Lo siento, ayer estaba un poco intimidado y acepté ayunar. –
@Heinz: debería poder cambiar la respuesta aceptada si lo desea. – Joren