Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #26  
Antiguo 24-04-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jhonny Ver Mensaje
Lo que me asombra es que a ecfisa se le haya demorado tanto usando BeginUpdate/EndUpdate.
A mi me asombran sus números. No sé cómo los obtuvo. Para 1000 números yo obtengo:

Código:
Concatenando: Alrededor de 3,000 microsegundos
BeginUpdate/EndUpdate: Alrededor de 72,000 microsegundos
Uso esto:

Código Delphi [-]
type
  ICounter = Interface
    function Ellapsed(): Single;
    function EllapsedAsString: String;
  end;

  TCounter = class(TInterfacedObject, ICounter)
  private
    Frequency, StartTicks: Int64;

  public
    constructor Create();
    function Ellapsed(): Single;
    function EllapsedAsString: String;
  end;

{ TCounter }

constructor TCounter.Create;
begin
  QueryPerformanceFrequency(Frequency);
  QueryPerformanceCounter(StartTicks);
end;

function TCounter.Ellapsed: Single;
var
  CurrentTicks: Int64;

begin
  QueryPerformanceCounter(CurrentTicks);
  Result := 1000000*(CurrentTicks - StartTicks);
  Result := Result/Frequency;
end;

function TCounter.EllapsedAsString: String;
begin
  Result := FormatFloat('0,000.0 µs', Ellapsed);
end;

Ejemplo:

Código Delphi [-]
var
  Counter: ICounter;

begin
  Counter := TCounter.Create();

  // Proceso a medir

  ShowMessage(Counter.EllapsedAsString);
end;

LineComment Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar números impares de un listbox a otro ale4132 Varios 5 17-12-2012 19:33:10
Consulta Desde->Hasta Luis M. Firebird e Interbase 6 30-07-2008 19:40:34
1000 Mil M 0011 1110 1000 3e8 sakuragi La Taberna 29 05-03-2008 18:28:56
Poner puntos a los números mayores de 999 y hasta 1M Pedro-Juan Trucos 2 26-12-2007 19:13:08
Factorial hasta 1000 Cheswar Varios 29 21-09-2007 20:43:27


La franja horaria es GMT +2. Ahora son las 22:46:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi