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í: Continuar leyendo «El costo de Trim()»

Anuncio publicitario

¿Te comprometes con la propuesta de sitio de desarrollo de software en español en StackEchange?

Logo StackExchange

En esta ocasión, estimado lector, estoy invitándote a unirte a la propuesta para crear un sitio de preguntas y respuestas sobre desarrollo de software en español, en Area51 de StackExchange. Dejame explicarte.

Primero, un poco de información sobre la red StackExchange, Area51, el proceso y StackOverflow. Si ya lo conoces, puedes ir directamente a la información de la iniciativa

Continuar leyendo «¿Te comprometes con la propuesta de sitio de desarrollo de software en español en StackEchange?»

A %d blogueros les gusta esto: