elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Comparación sobre el tiempo de ejecución.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comparación sobre el tiempo de ejecución.  (Leído 2,554 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Comparación sobre el tiempo de ejecución.
« en: 8 Agosto 2013, 11:35 am »

Hola, me gustaría saber una cosa muy simple, pero no encuentro está información en ningún sitio.


¿Que tarda más en realizarse, una comprobación, o setear diréctamente un valor?

Pongo un ejemplo:


Código
  1. ' Setear diréctamente:
  2. Private MyPoint As New Point(0, 8)
  3.  
  4. Private Sub blabla()
  5.  
  6.   MyPoint.X = 257
  7.  
  8. End Sub

Código
  1. ' Comprobar, y si la condición no se cumple, setear:
  2. Private MyPoint As New Point(0, 8)
  3.  
  4. Private Sub blabla()
  5.  
  6.    If Not MyPoint.X = 257 Then MyPoint.X = 257
  7.  
  8. End Sub


Quizás también tenga que ver del objeto con el que estemos tratando, por ejemplo quizás una propiedad de un control "pesado" tardaría más en leerse que en diréctamente setear su valor?



En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Comparación sobre el tiempo de ejecución.
« Respuesta #1 en: 8 Agosto 2013, 15:35 pm »

Yo me iría a la teoría ...
Stack, Heap, tipos por valor, por referencia (tener en cuenta la interfaz IEquatable), objetos inmutables, etc :P

Saludos


« Última modificación: 8 Agosto 2013, 15:38 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: Comparación sobre el tiempo de ejecución.
« Respuesta #2 en: 8 Agosto 2013, 16:05 pm »

Ala, dices eso y te quedas tan pancho no? xD, te has pasado Novlucker uf...  :silbar:

El Heap he buscado lo que es y no lo entiendo. http://en.wikipedia.org/wiki/Heap_%28data_structure%29
Otra cosa que desconocía era la interface IEquatable, que tampoco lo entiendo. http://msdn.microsoft.com/en-us/library/ms131187.aspx

Pero aún juntando esas dos piezas que no entiendo en el puzzle que has hecho, ¿Que quieres decir con todo eso?, no capto la teoría de la que hablas.

Me pregunto que tiene que ver la pila, y el resto de cosas que has mencionado, como por ejemplo si un objeto es de estado inmutable o mutable, ¿con todo esto?, imagino que algo si que tendrá que ver... claro, pero no lo capto, podrías decirlo de una manera más comprensible para mi?.

Saludos!
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Comparación sobre el tiempo de ejecución.
« Respuesta #3 en: 8 Agosto 2013, 16:30 pm »

Por qué no intentas haciendo una pequeña prueba, en donde tengas bloque que estime el tiempo de ejecución del programa, desde su inicio a fin y realices pruebas para estos dos casos.

No entiendo muy bien por qué te surge la duda.

Es más rápido setear un valor.
Pero sería más correcto verificar.
En línea

abc
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Comparación sobre el tiempo de ejecución.
« Respuesta #4 en: 8 Agosto 2013, 16:39 pm »

Citar
El Heap he buscado lo que es y no lo entiendo. http://en.wikipedia.org/wiki/Heap_%28data_structure%29
Las variables por valor se almacenan en un sitio, y las por referencia en otro, por lo que el acceso a los datos es diferente ...
http://proyecto-csharp.blogspot.com/2010/07/gestion-de-memoria.html

Citar
Otra cosa que desconocía era la interface IEquatable, que tampoco lo entiendo. http://msdn.microsoft.com/en-us/library/ms131187.aspx

Siguiendo con lo anterior y si hablamos de implementar la interfaz IEquatable para el caso los objetos por referencia, no es lo mismo comparar la referencia a un objeto, que tener la implementación de un método para la comparación.
http://msdn.microsoft.com/es-es/library/ms131187(v=vs.80).aspx

Cuando hablaba de los objetos mutables/inmutables, iba puntualmente al manejo que se realiza en memoria, y como se asignan estos, y tiene que ver por ejemplo con el motivo por el cual debemos de utilizar un StringBuilder (o algún método que lo implemente) para concatenar string (inmutable) en .NET, y no "a & b" (VB.NET) o "a + b" (C#) ;)

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: Comparación sobre el tiempo de ejecución.
« Respuesta #5 en: 8 Agosto 2013, 22:24 pm »

No entiendo muy bien por qué te surge la duda.

Hola,
la razón es simple, quiero programar de manera correcta y a ser posible de la manera más eficaz, aunque en este caso busco velocidad antes que eficacia, de ahí la pregunta xD.


Citar
Por qué no intentas haciendo una pequeña prueba, en donde tengas bloque que estime el tiempo de ejecución del programa

Codeé hace tiempo un procedimiento para estimar el tiempo mediante un stopwatch, pero lo usaba para instrucciones más largas, no lo he usado para este experimento porque sé que la diferencia va a ser mínima, de unos pocos MS, además antes que fiarme de este tipo de metodos pefiero confiar en la opinión de gente experta que haya estudiado como funcionan por dentro estas comparaciones internas.

Gracias y saludos!
« Última modificación: 8 Agosto 2013, 22:28 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
error 458 en tiempo de ejecucion
Programación Visual Basic
wACtOr 0 3,050 Último mensaje 18 Junio 2007, 16:20 pm
por wACtOr
tiempo de ejecucion « 1 2 »
Programación C/C++
mapers 11 12,967 Último mensaje 26 Junio 2010, 15:37 pm
por cbug
tiempo de ejecucion!!!
Programación General
mapers 3 3,417 Último mensaje 28 Agosto 2010, 09:00 am
por Littlehorse
Tiempo de ejecución en Eclipse
Java
Aikanáro Anário 5 12,316 Último mensaje 16 Diciembre 2011, 00:05 am
por Aikanáro Anário
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines