Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Comunicarse con Windows en algoritmos largos

Estas en el tema de Comunicarse con Windows en algoritmos largos en el foro de C/C++ en Foros del Web. Hola amigos. Tengo un algoritmo que lo he probado en pequeñas instancias y funciona bien. Son lo suficientemente pequeñas para hacer un seguimiento en el ...
  #1 (permalink)  
Antiguo 14/02/2016, 20:17
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Comunicarse con Windows en algoritmos largos

Hola amigos. Tengo un algoritmo que lo he probado en pequeñas instancias y funciona bien. Son lo suficientemente pequeñas para hacer un seguimiento en el debugging. La cuestión es que en la versión release y con instancias grandes me sale el típico mensaje de su programa ha efectuado algo inválido y deberá cerrarse.

Tengo dos teorías 1 qué El algoritmo esté mal y deba corregir o 2 que, como toma mucho tiempo, el Windows piense que no responde y lo cierra.

La pregunta es que comando usar, para ponerlo dentro de la iteración, para que se comunique con el Windows. Y así saber cual de las dos hipótesis es correcta.

Saludos
  #2 (permalink)  
Antiguo 14/02/2016, 21:08
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Respuesta: Comunicarse con Windows en algoritmos largos

Por lo que dices, el código está mal. Una cosa es un algoritmo y otra el código. Cuando un algoritmo está mal pero bien programado, normalmente obtienes resultados erroneos. Si el código está mal hecho, entonces el programa truena y el sistema operativo lo cierra.

Una de las principales razones, es mal manejo de memoria. Como no das ningún código, no hay manera de saber.

Este tipo de errores a veces no aparecen con contextos de pocos datos. Pero al usar el programa de manera mas generalizada, la probabilidad de que aparezca el error se incrementa. También cuando usas la versión Release(producción, como dicen algunos) el código es optimizado y puede dar como resultado que el error aparezca mas frecuentemente que en la versión Debug.

Recomendación. Puedes usar logs, ya sea ad hoc(con printfs o couts), o puedes usar herramientas como Valgrind para detectar leaks de memoria. Otra sería hacer mucha mas depuración hasta que aparezca el error.

Saludos
  #3 (permalink)  
Antiguo 15/02/2016, 06:33
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Comunicarse con Windows en algoritmos largos

Hola gracias por la respuesta. En efecto creo que puede ser un error sin embargo esta situación me suscitó un problema similar cuando programaba en vba y era que cuando el algoritmo era muy largo (con bucles y demás) windows me decía que el programa no responde y sebe cerrarse, sin embargo el código estaba bien, y encontré un comando que le ponía al final de bucle, por ejemplo, para que se comunique con windows y le diga que todo está bien que lo espere.

Debo preocuparme por eso en c++ por concola? Es más me gustaría ponerle un loading... con los puntos suspensivos parpadeando mientras está ocupado.

saludos.
  #4 (permalink)  
Antiguo 15/02/2016, 08:50
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Comunicarse con Windows en algoritmos largos

Estás seguro de que no se genera algún tipo de bloqueo (ya sea por un bucle que no termina por alguna condición que no se cumple, por threading...)? Porque el mensaje de Windows para matar el proceso indica que es algo del estilo.

Que diferencia, hay entre ambas instancias (aparte del tipo de compilación)? A que te refieres con una instancia más grande? Yo voto porque es un problema de código (un bug) que solo aparece en determinadas situaciones.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 16/02/2016, 02:06
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Comunicarse con Windows en algoritmos largos

Pues si tenías razón jeje era problema del código, Gracias. Pero me he quedado con la duda, mi código ahora correcto, se demora unos 60 segundos, y me gustaría que salga algo por la pantalla para saber que sigue ahí, como un loading y con tres puntos que parpadeen por ejemplo. Eso se hace con el cout me imagino y con comandos de avance y retroceso de linea. cierto?
  #6 (permalink)  
Antiguo 16/02/2016, 03:20
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Comunicarse con Windows en algoritmos largos

Ese tipo de llamadas no son nativas de C++... dependes del SO para recolocar el cursor
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #7 (permalink)  
Antiguo 16/02/2016, 03:59
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Comunicarse con Windows en algoritmos largos

Gracias, siempre he usado windows, las buscaré.

Etiquetas: largo, release, tiempo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:06.