String Performance

26/02/2005 - 16:00 por Jorge Perez | Informe spam
Estimados,

Tengo manejar grandes strings(concatenar exactamente),
cual es el mejor objeto para realizar esto en cuanto a
performance y rendimiento??

Estaba pensando en String.Concat.. hay otro mejor para
hacer estas operaciones.

Saludos

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
26/02/2005 - 17:27 | Informe spam
Jorge,

Mira la clase System.Text.StringBuilder, idónea para esas tareas.

http://msdn.microsoft.com/library/d...stopic.asp

Slds,

Octavio

"Jorge Perez" escribió en el mensaje
news:0ab501c51c13$f06081a0$
Estimados,

Tengo manejar grandes strings(concatenar exactamente),
cual es el mejor objeto para realizar esto en cuanto a
performance y rendimiento??

Estaba pensando en String.Concat.. hay otro mejor para
hacer estas operaciones.

Saludos
Respuesta Responder a este mensaje
#2 Guillermo guille
27/02/2005 - 19:54 | Informe spam
Incluso para concatener pocas cadenas, es "RECOMENDABLE" (y no estoy gritando)
usar StringBuilder.
Es super fácil, y a la larga si te acostumbras... pues eso que ganas.

Compruébalo con este simple código... verás las diferencias:

StringBuilder sb = new System.Text.StringBuilder();
String s = "";
int num = 15;
int total = 0;
DateTime d1;

if(args.Length > 0){
num = int.Parse(args[0]);
if(num > 20)
Console.WriteLine("\tSeguramente la parte de String tardará lo suyo...
paciencia...");
}
else
Console.WriteLine("\tPuedes indicar el valor de veces /1000\tSe usará {0} *
1000", num);
total = num * 1000;

d1 = DateTime.Now;
Console.WriteLine("Probando con StringBuilder {0:#,###} veces", total);
for(int i = 0; i<total; i++)
sb.Append("hola\t");
Console.WriteLine("Tiempo empleado agregando {0:#,###} veces: {1:#,000.00}
milisegundos", total, DateTime.Now.Subtract(d1).Milliseconds );

d1 = DateTime.Now;
Console.WriteLine("Probando con String {0:#,###} veces", total);
for(int i = 0; i<total; i++)
s = s + "hola\t";
Console.WriteLine("Tiempo empleado concatenando {0:#,###} veces: {1:#,000.00}
milisegundos", total, DateTime.Now.Subtract(d1).Milliseconds );

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"Jorge Perez" wrote in message
news:0ab501c51c13$f06081a0$
Estimados,

Tengo manejar grandes strings(concatenar exactamente),
cual es el mejor objeto para realizar esto en cuanto a
performance y rendimiento??

Estaba pensando en String.Concat.. hay otro mejor para
hacer estas operaciones.

Saludos
Respuesta Responder a este mensaje
#3 Oscar Galvis
28/02/2005 - 05:01 | Informe spam
Utiliza StringBuilder... la clase string para concatenar instancia un
stringbuilder, concatena y luego asigna a otro string. x eso es mucho mejor
usar stringbuilder




"Jorge Perez" escribió en el mensaje
news:0ab501c51c13$f06081a0$
Estimados,

Tengo manejar grandes strings(concatenar exactamente),
cual es el mejor objeto para realizar esto en cuanto a
performance y rendimiento??

Estaba pensando en String.Concat.. hay otro mejor para
hacer estas operaciones.

Saludos
Respuesta Responder a este mensaje
#4 Jorge Perez
01/03/2005 - 00:26 | Informe spam
Super bueno el StringBluider, super rapido..

Gracias..
Incluso para concatener pocas cadenas, es "RECOMENDABLE"


(y no estoy gritando)
usar StringBuilder.
Es super fácil, y a la larga si te acostumbras... pues


eso que ganas.

Compruébalo con este simple código... verás las


diferencias:

StringBuilder sb = new System.Text.StringBuilder();
String s = "";
int num = 15;
int total = 0;
DateTime d1;

if(args.Length > 0){
num = int.Parse(args[0]);
if(num > 20)
Console.WriteLine("\tSeguramente la parte de String


tardará lo suyo...
paciencia...");
}
else
Console.WriteLine("\tPuedes indicar el valor de


veces /1000\tSe usará {0} *
1000", num);
total = num * 1000;

d1 = DateTime.Now;
Console.WriteLine("Probando con StringBuilder {0:#,###}


veces", total);
for(int i = 0; i<total; i++)
sb.Append("hola\t");
Console.WriteLine("Tiempo empleado agregando {0:#,###}


veces: {1:#,000.00}
milisegundos", total, DateTime.Now.Subtract


(d1).Milliseconds );

d1 = DateTime.Now;
Console.WriteLine("Probando con String {0:#,###}


veces", total);
for(int i = 0; i<total; i++)
s = s + "hola\t";
Console.WriteLine("Tiempo empleado concatenando {0:#,###}


veces: {1:#,000.00}
milisegundos", total, DateTime.Now.Subtract


(d1).Milliseconds );

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"Jorge Perez" wrote


in message
news:0ab501c51c13$f06081a0$
Estimados,

Tengo manejar grandes strings(concatenar exactamente),
cual es el mejor objeto para realizar esto en cuanto a
performance y rendimiento??

Estaba pensando en String.Concat.. hay otro mejor para
hacer estas operaciones.

Saludos




.

Respuesta Responder a este mensaje
#5 Guillermo guille
01/03/2005 - 16:39 | Informe spam
sí, lo que pasa es que como es una clase "no normal", muchos tardamos en darnos
cuenta de la "valía" que tiene.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"Jorge Perez" wrote in message
news:2b2801c51dec$ec5e7d70$
Super bueno el StringBluider, super rapido..

Gracias..
Incluso para concatener pocas cadenas, es "RECOMENDABLE"


(y no estoy gritando)
usar StringBuilder.
Es super fácil, y a la larga si te acostumbras... pues


eso que ganas.

Compruébalo con este simple código... verás las


diferencias:

StringBuilder sb = new System.Text.StringBuilder();
String s = "";
int num = 15;
int total = 0;
DateTime d1;

if(args.Length > 0){
num = int.Parse(args[0]);
if(num > 20)
Console.WriteLine("\tSeguramente la parte de String


tardará lo suyo...
paciencia...");
}
else
Console.WriteLine("\tPuedes indicar el valor de


veces /1000\tSe usará {0} *
1000", num);
total = num * 1000;

d1 = DateTime.Now;
Console.WriteLine("Probando con StringBuilder {0:#,###}


veces", total);
for(int i = 0; i<total; i++)
sb.Append("hola\t");
Console.WriteLine("Tiempo empleado agregando {0:#,###}


veces: {1:#,000.00}
milisegundos", total, DateTime.Now.Subtract


(d1).Milliseconds );

d1 = DateTime.Now;
Console.WriteLine("Probando con String {0:#,###}


veces", total);
for(int i = 0; i<total; i++)
s = s + "hola\t";
Console.WriteLine("Tiempo empleado concatenando {0:#,###}


veces: {1:#,000.00}
milisegundos", total, DateTime.Now.Subtract


(d1).Milliseconds );

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"Jorge Perez" wrote


in message
news:0ab501c51c13$f06081a0$
Estimados,

Tengo manejar grandes strings(concatenar exactamente),
cual es el mejor objeto para realizar esto en cuanto a
performance y rendimiento??

Estaba pensando en String.Concat.. hay otro mejor para
hacer estas operaciones.

Saludos




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida