Ver Mensaje Individual
  #8  
Antiguo 01-07-2015
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Reputación: 20
Héctor Randolph Va por buen camino
Hola Anel Hernandez

Adicionalmente al uso de BeginUpdate-EndUpdate, también es recomendable fijar la propiedad Sorted a False.

Por otra parte, cuando agregas elementos a una lista dentro de un ciclo, la lista tendrá que ajustar dinámicamente el tamaño de la memoria reservada conforme se requiera. Sin darnos cuenta, esta operación puede repetirse un número considerable de veces y eso afectará el rendimiento.

Por este motivo, es muy aconsejable que puedas determinar con anticipación el número de elementos que vas a añadir y esto se puede indicar en la propiedad Capacity.

De esta forma reservamos la memoria en una sola operación antes de entrar al ciclo.

Código Delphi [-]
var
  ItemsToAdd: Integer;
  I: Integer;
begin
   ItemsToAdd:=100000; 
   .
   .
   .
   SL.Sorted:=False;
   SL.Capacity := SL.Count + ItemsToAdd;
   for I := 1 to ItemsToAdd do
    SL.Add('Algo');

Saludos
Responder Con Cita