Archivo de la etiqueta: Optimización

El costo de Trim()

Recientemente he estado ayudando a un cliente a mejorar el desempeño de una aplicación crítica hecha con Delphi, que procesa miles de transacciones por hora. Haciendo algunos cambios al código, me topé con la necesidad de evaluar el costo de hacer Trim() de algunas variables.

En concreto, me topé con unas 50 o 60 construcciones que tenían una estructura como esta:

if Variable <> '' then 
begin 
  VariableA := VariableA + X; 
  VariableV := VariableB + Trim(Variable); 
end;

Dado que de todas maneras había que re-escribir el código, pensé que era una buena oportunidad para aplicar el principio DRY y que a su vez esto permitiría tener una rutina más fácil de leer.

Por tanto, pensé en hacer una rutina genérica que recibiera las variables (el caso real implicaba cambios más profundos, pero para fines didácticos acá asumiremos que la estructura básica se mantendría):

La nueva rutina sería similar a esta:

procedure AsignaValor(Variable, X: string; 
  var VariableA, VariableB: string); 
begin 
  if Variable <> '' then 
  begin 
    VariableA := VariableA + X; 
    //se ha quitado la llamada a trim 
    VariableV := VariableB + Variable; 
  end; 
end;

De esta manera, la vieja rutina luciría así: Sigue leyendo