Fernando,
Me enganche furera del contexto, desde un correo tuyo si leer el
thread entero.
Saludos y disculpas!
_____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Fernando
Tubio
Enviado el: Martes, 11 de Septiembre de 2007 02:15 p.m.
Para: [email protected]
Asunto: [puntonet] Proclama para salvar instancias
Cuando respondí anteriormente no había entendido que tu pregunta venía por
el lado de la eficiencia. Si se trata de eso, y a falta de un contexto
adicional, entonces diría que no generaría copias de referencias sin motivo.
Pero no dudaría en hacerlo si el resultado es código más claro. Dudo que el
impacto en términos de rendimiento sea significativo, y resta por ver el
código nativo que finalmente genera el jitter.
Saludos,
Fernando Tubio
----- Original Message -----
From: Pablo A. Allois <mailto:[EMAIL PROTECTED]>
To: [email protected]
Sent: Tuesday, September 11, 2007 12:51 PM
Subject: [puntonet] Proclama para salvar instancias
Viene a raiz de "algún tipo de ineficiencia"
Esos punteros, ocupan espacio de memoria ... no ? ... si no tienen una razon
de prolijidad o claridad en la programacion, son ineficientes a mi modo de
ver.
Fue por eso el comentario ... me enganche a leerlo recien desde el mail de
Fernando.
Saludos!
_____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Daniel
Calvin
Enviado el: Martes, 11 de Septiembre de 2007 11:06 a.m.
Para: [email protected]
Asunto: [puntonet] Proclama para salvar instancias
Exacto Pablo, una sola instancia, dos referencias a esa instancia.
Daniel
PD: Que tiene que ver con lo anterior?? :))
El día 11/09/07, Pablo A. Allois <[EMAIL PROTECTED]> escribió:
dim a as object
dim b as object
a = new object
b = a
Hay una sola instancia.
Pero hay dos variables guardando punteros a la misma instancia .. no ?
_____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Fernando
Tubio
Enviado el: Martes, 11 de Septiembre de 2007 10:10 a.m.
Para: [email protected]
Asunto: [puntonet] Proclama para salvar instancias
Esto es incorrecto, se trata siempre de una misma referencia. Usar la misma
variable, u otra que contenga una referencia al mismo objeto, varias veces
para acceder a distintas propiedades del objeto al cual hace referencia
dicha variable, no involucra la creación de nuevos objetos o algún tipo de
ineficiencia. En el caso que describís, "Texto1" contiene una referencia a
un objeto que ya fue creado previamente.
Saludos,
Fernando Tubio
----- Original Message -----
From: Gastón Dorigo <mailto:[EMAIL PROTECTED]>
To: [email protected]
Sent: Monday, September 10, 2007 3:09 PM
Subject: [puntonet] Proclama para salvar instancias
Gracias por tu observación, ahora que hago un poco más de memoria, recuerdo
que el concepto era la siguiente.
El el caso de
Texto1.text = "Hola" el procesador crea una referencia al objeto y lee el
atributo
Si luego agrego
Texto1.tag = 0 el procesador vuelve a crear otra instancia de texto1 para
leer el atributo tag
En cambio con with // end with el procesador crea una única instancia y
accede a la misma para todos los atributos/metodos/eventos que se invoquen
en el bloque.
Espero sus comentarios
Saludos
_____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Juan
Granillo
Enviado el: Lunes, 10 de Septiembre de 2007 11:22 a.m.
Para: [email protected] <mailto:[email protected]>
Asunto: [puntonet] Proclama para salvar instancias
Hola Gaston,
Recuerdo bien esa charla de seara en el Heraton. Mas alla de quedar un poco
mas prolijo, la ventaja principal es que el procesador mantiene la
referencia al objeto "a mano" (si me permiten la expresion), y no necesita
buscarla para la ejecucion de cada metodo.
Saludos
Juan
-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] nombre de Gastón
Dorigo
Enviado el: viernes, 07 de septiembre de 2007 18:36
Para: [email protected]
Asunto: [puntonet] Proclama para salvar instancias
Muy buena la idea de la proclama, me sumo con una consulta:
Hace un tiempo en un evento en el Hotel Sheraton, Daniel Seara explicaba las
ventajas de utilizar el bloque with / end with, por ejemplo
WITH textbox1
.text = "texto"
.tag = 0
. etc
END WITH
La consulta es porque no recuerdo ni puedo deducir cuales son los motivos
que validan esta afirmación, si alguien recuerda o me puede ayudar a deducir
una justificación válida se lo agradecería porque varios alumnos me lo han
consultado y todavía estoy buscando una respuesta razonable.
Saludos.
_____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Damián
Herrera
Enviado el: Viernes, 07 de Septiembre de 2007 06:01 p.m.
Para: [email protected] <mailto:[email protected]>
Asunto: [puntonet] Proclama para salvar instancias
Ya que estamos, yo también me sumo a la proclama!!!
Por todos los medios posibles evitar la siguiente estructura de código:
Try
...
...
Catch ex As Exception
Throw(ex)
...
End try
Esto es lo mismo que no capturar el error, en lugar de hacer esto no hagan
nada! Se van a ahorrar tiempo de procesamiento :) Si no, asegurense de hacer
los rollbacks o cancelar la operación antes de la línea "Throw(ex)".
Feliz fin de semana!
Damián Herrera
_____
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Diego
Jancic
Sent: Friday, September 07, 2007 5:44 PM
To: [email protected]
Subject: [puntonet] Proclama para salvar instancias
Hola gente!,
Estoy modificando un programa que hicieron muchos programadores (incluidos
semi-seniors y seniors), y me canse de ver algunas cosas sin sentido.
Por ese motivo estoy realizando esta proclama general, para que si alguien
lo hace, lo evite la proxima vez. ;-)
Cuando tenemos un codigo de este estilo:
MiClase instancia = new MiClase();
instancia = UnServicio.ObtenerDesdeBD(
);
En ese caso, se estan creando 2 objetos cuando se deberia crear uno
Fijense
que la 2da linea sobrescribe completamente la primera!!
Y para agravar el problema, el metodo UnServicio.ObtenerDesdeBD hace algo
con el parecido pero llamando a la base de datos o a un WS o a donde sea.
Entonces se termina creando una instancia por capa, cuando en realidad se
necesita una sola (o ninguna si el metodo devuelve null)
Espero haberles ahorrado aunque sea 1 segundo de procesamiento en todo el
tiempo de vida de su aplicación.
Bueno, esto fue una pequeña contribución a todos ellos que por costumbre
repiten estas cosas desde hace mucho tiempo (ojo, hace bastante yo tambien
lo hacia!).
Saludos y Happy Programming!,
Diego
__________ Información de NOD32, revisión 2513 (20070907) __________
Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com
__________ Información de NOD32, revisión 2519 (20070910) __________
Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com
--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional