miércoles, 9 de septiembre de 2009

Optimizaciones de códigos VB 6

Como dicen por ahí, "Cada cabeza es un mundo" y otro que dice "Se puede llegar al mismo destino por varias vías". Hoy les voy a contar un anécdota de algo que me sucedió el día de hoy donde un programador me dice que es más "óptimo" leer un XML dentro de un bucle formado por While...Wend en VB 6 que usando un For..Next. Realmente, lo miré y mostré una sonrisa sarcástica, ya que como dice el dicho hay varias formas de llegar al mismo destino, y mucho más en programación. El ejemplo era el siguiente:

For i = 0 to nodes.chilnodes.lenght -1
valor = nodes.chilnodes(i).selectsinglenode("valor").text
Next i

la corrida con este bucle tardó 4.64 segundo leyendo el archivo completo, que es de unos pocos megas. De la otra forma:

Set onode = onodes.nextnode()
While Not onode Is Nothing
valor = onode.selectsinglenode("valor").text
Set onode = onodes.nextnode()
Wend

tardaba 4.65 segundos la corrida del archivo completo.

Al final, para lo que se desea el programa, la forma de leer el XML no influye en una aplicación que no vaya a forma XML gigantes, y no es cierto que el bucle con While es más óptimo que el For. Con esto solo quiero demostrar que muchas veces los programadores caen en el error de criticar una determinada forma de realizar un proceso implementado por un colega, sin antes sentarse a analizar porque esa otra persona tomó la decisión de realizarlo de tal manera.

No hay comentarios: