Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Acelerar TClientDataset con Midas Speed Fix

Quiero compartir con ustedes algo que encontré en la web, no se si ya alguien lo ha comentado pero aquí va...

Problema:
Tengo varias aplicaciones entre las cuales se produce intercambio de datos a traves de archivos .XML que son creados con TClientDataset.

La apertura de estos archivos cuando son de pocos registros no es preocupación, pero cuando estos son de varios cientos de registros, SI que hay problema por lo lento de esta accíon.

Solución
Debido a esto comenze buscar alguna información de como se podría acelerar el acceso a estos y encontre esta página Midas Speed Fix – Unit de Cesar Romero.

!Corrección! Fué Andreas Hausladen quien realizó la mejora...Disculpas

Al principio no le tenía mucha fé pero la descarge y me decidi a probar esta solución, mi sorpresa fué enorme al ver que funciona muy bien bajando los tiempos de apertura y lectura de datos de manera considerable.

Pasos:
1) Descargar unidades Midas Speed Fix – Unit
2) Agregar al proyecto
3) Compilar

Problemas
Yo realize todo esto con Delphi XE2 y existen 2 problemillas de facil solución

Error 1:
Cita:
[DCC Error] MidasSpeedFix.pas(187): E2033 Types of actual and formal var parameters must be identical
Solución:
Código Delphi [-]
procedure HookProc(Proc, Dest: Pointer; var BackupCode: TXRedirCode);
var
  n: NativeUInt; //DWORD;
  Code: TXRedirCode;
begin
  Assert(Proc <> nil);
  if ReadProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n) then
  begin
    Code.Jump := $E9;
    Code.Offset := PAnsiChar(Dest) - PAnsiChar(Proc) - SizeOf(Code);
    WriteProcessMemory(GetCurrentProcess, Proc, @Code, SizeOf(Code), n);
  end;
end;

Error 2:
Cita:
[DCC Error] MidasSpeedFix.pas(201): E2033 Types of actual and formal var parameters must be identical
Solución
Código Delphi [-]
rocedure UnhookProc(Proc: Pointer; var BackupCode: TXRedirCode);
var
  n: NativeUInt; //Cardinal
begin
  if (BackupCode.Jump <> 0) and (Proc <> nil) then
  begin
    WriteProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n);
    BackupCode.Jump := 0;
  end;
end;

Copilar y Ok...

Según lo indicado por Cesar esta unit esta soportada para "suporta desde o Delphi 6 até o 2009", como les comente yo la implemente en XE2.

Espero que les sea de utilidad como fué para mí.

Última edición por cloayza fecha: 10-10-2013 a las 20:56:51.
Responder Con Cita
  #2  
Antiguo 10-10-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias por compartirlo
Responder Con Cita
  #3  
Antiguo 11-10-2013
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Me sumo a darte las gracias, interesante aporte .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
Respuesta



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
The Firebird Project hires 35 developers to speed up development! RolphyReyes Noticias 4 03-04-2008 07:42:31
Problemas Acelerar PHP HomeCinema PHP 1 09-02-2007 11:42:04
Acelerar carga de Delphi mamcx Noticias 4 13-09-2006 00:51:52
Speed Button que se quede down como en emule Nbull Varios 5 01-02-2006 09:20:34
Speed JerS Conexión con bases de datos 4 13-12-2005 20:36:36


La franja horaria es GMT +2. Ahora son las 13:42:24.


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