C/Visual C - optimizar la velocidad

 
Vista:

optimizar la velocidad

Publicado por oscar (5 intervenciones) el 31/07/2005 20:15:51
hola
tengo un programa hecho obviamente en c, este consta de varias instrucciones que por lo general son asignaciones, condiciones IF y reasignacion de memoria usando realloc(), utilizo el compilador gcc 332 de linux Suse y RedHat.
El programa debe procesar muchisimos archivos en un lapso definido de tiempo, sin embargo no se ha logrado alacanzar la suficiente velocidad para cumplir el requisito en una PC con una velo9cidad dada.
Existe algun truco para crear un codigo mas veloz?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:optimizar la velocidad

Publicado por fernando.gomez (1604 intervenciones) el 01/08/2005 19:51:48
Pues eso dependería de la naturaleza del procesamiento de tus archivos. Pero en general, debes tratar de que tus algoritmos tengan una velocidad logarítmica (p.e. nlog(n)) en lugar de una lineal. Googolea en Internet (o pregunta en este foro) por alternativas a los algoritmos que estás empleando. Sin embargo, sin conocer qué es lo que procesas --y cómo lo haces-- es difícil ayudaros un poco más.

La otra solución, por supuesto, es que te consigas un procesador más rápido...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:optimizar la velocidad

Publicado por El Mogur (202 intervenciones) el 02/08/2005 10:58:39
A veces, además, mirar las opciones del compilador para que genere código para tu CPU optimizado etc., puede notarse; pero en tu caso, posiblemente no se note mucho, porque parece que en lo que más tiempo "se pierde" es en Entrada/Salida...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:optimizar la velocidad

Publicado por fernando.gomez (1604 intervenciones) el 02/08/2005 18:52:59
Mmm... cierto, el tiempo se te debe estar yendo en I/O. Quizás podrías sacrificar un poco de memoria: cargas los archivos a procesar (lees los que sean necesarios, o una parte si son muchos), procesas los cambios en memoria y ya que todos esten procesados, escribes... así la E/S se reduce al mínimo; a cambio vas a ocupar memoria en proporción directa a los archivos procesados (la escalabilidad se reduce...). Sigh... esto me recuerda el coloquial que se usa en México para la Tercera Ley de la Termodinámica:

"No puedes ganar, no puedes empatar y no puedes salirte del juego".

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar