tengo un Case
el tema es que justo los primeros casos son los menos problables que ocurrar,
mi pregunta es si poniendo los casos mas frecuentes como las promeras ocurrencias, estoy optimizando el codigo, o simplemnte da igual.
| |||
![]() tengo un Case el tema es que justo los primeros casos son los menos problables que ocurrar, mi pregunta es si poniendo los casos mas frecuentes como las promeras ocurrencias, estoy optimizando el codigo, o simplemnte da igual. |
| ||||
Re: se puede optimizar un case: ?? Pues la referencia no dice mucho, pero si hacemos una prueba:
Código:
vemos que lo que dice u_g, ahora si que para variar, ...... es cierto <% numero = 5 Select Case numero Case 1, 5 response.write "El número es 1 or 5" Case 2 response.write "El número es 2" Case 3 response.write "El número es 3" Case 4 response.write "El número es 4" Case 5 response.write "El número es 5" End Select %> |
| ||||
Re: se puede optimizar un case: ?? ¿Cómo lo estás midiendo? La verdad es algo que no he hecho, pero a mi me suena lógico que ejecute el código de la condición en cuestión y salga del case, pero bueno, si lo estás haciendo con cronómetro en mano a lo mejor ni se nota al ojo humano. Por eso sería interesante saber como lo mides. Saludos
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |
| ||||
Re: se puede optimizar un case: ?? Medir el tiempo de ejecución es fácil:
Código:
Pero no creo que sea algo en lo que tenga que perder tiempo -en optimizar un CASE- cuando puedo realmente optimizar en las BD's, creaciones de objetos Commands, etc, etc. tiempoinicio = Timer For i = 1 To 800000 el CASE con un método que genere números aleatorios donde salgan con más frecuencia los primeros y colocándolos al final del CASE (y luego cambiar esto) Next tiempototal = FormatNumber(Timer - tiempoinicio, 3, True) Response.Write "Tiempo total: " & tiempototal & "<br>" |
| ||||
Re: se puede optimizar un case: ?? Cita:
Iniciado por u_goldman ![]() ¿Cómo lo estás midiendo? La verdad es algo que no he hecho, pero a mi me suena lógico que ejecute el código de la condición en cuestión y salga del case, pero bueno, si lo estás haciendo con cronómetro en mano a lo mejor ni se nota al ojo humano. Por eso sería interesante saber como lo mides. Saludos Hola a todos ![]() Luego hice una prueba con un timer (como Myakire recomienda) haciendo un case entre sólo 1000 opciones... algo así (con el timer incorporado):
Código:
Tanto para la variable numero con valor 1 o 1000, los resultados fueron los mismos. Tal vez 1000 sea un número relativamente bajo como para impactar en el rendimiento de un case... pero... ¿realmente cuándo tenés, en la práctica, un case de 1000 opciones distintas? <% 'numero = 1 numero = 1000 Select Case numero Case 1 response.write "El numero es 1" Case 2 response.write "El número es 2" Case .... response.write "El número es ...." Case 1000 response.write "El número es 1000" End Select %> ![]() Saludos PD: En un rato intento con un case de 10.000 opciones y comento los resultados
__________________ ...___... |
| ||||
Re: se puede optimizar un case: ?? Ejecuté este script:
Código:
Copié y pegué el resultado en otra página ASP.<% response.write "numero = 1" & "<br>" response.write "tiempoinicio = Timer" & "<br>" response.write "select case numero" & "<br>" for i = 0 to 10000 response.write "case " & i & "<br>" response.write "resultado = ""es el número " & i & """" & "<br>" next response.write "end select" & "<br>" response.write "tiempototal = FormatNumber(Timer - tiempoinicio, 3, True)" & "<br>" response.write "Response.Write ""Tiempo total: "" & tiempototal" %> Ejecuté esta segunda página con la variable numero con valor 1 y luego con valor 10000. Resultado en ambas pruebas: Tiempo total: 0,000
__________________ ...___... |
| ||||
Re: se puede optimizar un case: ?? Pues si, por eso mismo comenté mi conclusión de este post en el mensaje anterior Cita: Pero no creo que sea algo en lo que tenga que perder tiempo -en optimizar un CASE- cuando puedo realmente optimizar en las BD's, creaciones de objetos Commands, etc, etc. |
| ||||
Re: se puede optimizar un case: ?? Bueno, pero a lo mejor en una aplicación grande con muchísimas estructuras case se podría ver una mejora en el rendimiento...o tal vez no ![]() ![]()
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |
| ||||
Re: se puede optimizar un case: ?? creen que funcione este tipo de cronometro..... Cita: solo es una idea... ya que utilizo este cronometro para mirar la carga de mi pagina...<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% 'Comenzamos el cronómetro. starttime = Timer() 'Toda la página a continuacion... Do While tt < 30000 tt = tt + 1 Loop function selecciones(variable) response.write variable select case variable case 1 ..... case 2 ..... . .. . case 1000 end select response.write "termino" ya que termina &> <head> </head> <body> <%call selecciones(numero)%> </body> <%'endtime = Timer() Response.Write "Visualizacion en " & endtime-starttime & " segundos" %> <html> espero ayude a su inquietud ![]()
__________________ "Eres parte del problema, parte de la solucion o parte del paisaje" Un Saludo desde Desierto de Altar, Sonora, MX. Shiryu_libra |
| |||
Re: se puede optimizar un case: ?? perdon por el retraso , lo medi con un timer y me da practicvamente lo mismo, no vale la pena optimizar nada. pero si en vez de una case se hace con ifelse anidados entonces los resultado si q se disparan, pq aqui las comparaciones si son una a auna, en el case creo q va directo a la opcion coincidente. |