¡Buen día a todos!
Manuelpr:
Existen diversas formas de acelerar procesos de software. Una de ellas es cambiar el hardware (procesador más rápido, más memoria RAM, etc.). Sin embargo, casi siempre es más económico optimizar el software (sobre todo cuando el programador recibe bajos honorarios
), lo cual implica revisar el código fuente con que se cuente y hacerlo más eficiente.
Por ejemplo, si tienes un bloque de código como este:
Código Delphi
[-]
...
Begin
If Tabla.Locate ('Nombre', Tabla2Nombre.Value, []) Then
If X > Pos ('A', Data) Then
ShowMessage ('¡Hola mundo!')
Else
If Pos ('A', Data) > 0 Then
ShowMessage ('¡Hola planeta!')
Else
ShowMessage ('¡Hola Tierra!')
Else
ShowMessage ('¡Hola a todos!');
If Tabla.Locate ('Nombre', Tabla2Nombre.Value, []) And (X > 10) Then
ShowMessage (IntToStr (Pos ('A', Data)));
End;
...
quedaría más óptimo (su compilado ejecutable correría más rápido) de esta manera:
Código Delphi
[-]
...
Var
Existe :Boolean;
Posicion :Integer;
Begin
Existe := Tabla.Locate ('Nombre', Tabla2Nombre.Value), []);
Posicion := Pos ('A', Data);
If Existe Then
If X > Posicion Then
ShowMessage ('¡Hola mundo!')
Else
If Posicion > 0 Then
ShowMessage ('¡Hola planeta!')
Else
ShowMessage ('¡Hola Tierra!')
Else
ShowMessage ('¡Hola a todos!');
If Existe And (X > 10) Then
ShowMessage (IntToStr (Posicion));
End;
...
En el primer caso se llama a las rutinas
- Tabla.Locate: 2 veces
- Pos: 3 veces
En el segundo caso se llama a las rutinas
- Tabla.Locate: 1 sóla vez
- Pos: 1 sóla vez
En el segundo caso se ocupa más memoria que en el primero (por las variables auxiliares
Existe y
Posicion), pero es justificable desde el punto de vista
costo-beneficio, concepto que en programación casi siempre está representado por la relación
espacio-velocidad.
Espero esto sea de utilidad, seguimos en contacto.
Al González.