Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2008
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.144
Poder: 21
kurono Va por buen camino
como bien dices utilizare un multiplo comun para los standeres de las memorias actualmente como el ejemplo que pusiste de 1mb o hasta 10mb puede ser para que esa operacion no se interrumpa como dices por algun programa en ejecucion o proceso pienso poner un aviso al momento de ejecutarlo diciendo que se debe cerrar toda aplicacion habierta
Responder Con Cita
  #2  
Antiguo 05-09-2008
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Aunque lo que propones es interesante, recuerda que dos maquinas exactamente iguales en Hardware no responderan igual en velocidad de aceso a la ram, debido a que se debe tambien al uso actual de memoria.

Y en la misma maquina, no es lo mismo llenar una memoria con 10 vectores de 1mb que con un vector de 10 mb. Y si sigues llenando la memoria sin liberarla, en un momento empezará a tardar mucho mas.
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 05-09-2008
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.144
Poder: 21
kurono Va por buen camino
se bien que un componente tales como memoria procesador no funciona igual en en diferente maquina y ahi esta unos de los motivo para hacer este programa y ver el funcionamiento de una memoria en diferente maquina . en cuanto a las cantidad de memoria pues pienso ponerle varias opciones de diferente tamaño y a final de cada prueba liberar la memoria
Responder Con Cita
  #4  
Antiguo 05-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Luego de haber seguido el anterior hilo y éste, repito lo que ya dije:

Cita:
Empezado por cHackAll Ver Mensaje
Para acceder a la memoria RAM necesitas modificar los privilegios de acceso a dicho objeto (restringido por su naturaleza crítica), luego realizar un mapeado del mismo en tu proceso y leer por bloques razonables múltiplos de 4 Kb que es el tamaño del PAGE_SIZE en arquitecturas x86...
Y recalco que es MUY peligroso escribir en la memoria RAM puesto que allí recide el núcleo del SO, los Drivers y muchos otros componentes del SO que al ser modificados provocarían las peores excepciones y la perdida de datos.

Código Delphi [-]
uses Windows, SysUtils;
 
const Section: array [0..7] of PWideChar = (Ptr(24), nil, @Section[6], Ptr(64), nil, nil, Ptr(3014700), '\Device\PhysicalMemory');
function NtOpenSection(var Handle: Cardinal; Access: Cardinal; const Section): Cardinal; stdcall; external 'ntdll';
 
var
 Handle, Time, Size, Offset: Cardinal;
 MemoryStatus: TMemoryStatus;
 lpBuffer: PChar;
 
begin
 if NtOpenSection(Handle, 4, Section) = 0 then
  begin
   GlobalMemoryStatus(MemoryStatus);
   Size := MemoryStatus.dwTotalPhys;
   Offset := 0;
   Time := GetTickCount;
   repeat lpBuffer := MapViewOfFile(Handle, 4, 0, Offset, $1000);
    if Assigned(lpBuffer) then
     UnmapViewOfFile(lpBuffer);
    Inc(Offset, $1000);
   until Offset = Size;
   Time := GetTickCount - Time;
   CloseHandle(Handle);
   MessageBox(0, PChar(IntToStr(Time div 1000)+'.'+IntToStr(Time mod 1000)), nil, 0);
  end;
end.

El anterior ejemplo hace lo que comentaba en mi post citado, pero te aconsejo utilizar la API LocalAlloc para emular lo que necesitas, caso contrario no dejes de considerar lo comentado por HySTD en el anterior hilo.

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx

Última edición por cHackAll fecha: 08-09-2008 a las 02:25:44. Razón: Informacion erronea
Responder Con Cita
  #5  
Antiguo 07-09-2008
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.144
Poder: 21
kurono Va por buen camino
puedes darme un ejemplo de la API LocalAlloc pues no quiero dañar la memoria ram
Responder Con Cita
  #6  
Antiguo 08-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cita:
Empezado por kurono Ver Mensaje
puedes darme un ejemplo de la API LocalAlloc pues no quiero dañar la memoria ram
He editado mi post pues no quise decir lo que habia dicho , el ejemplo que ya tienes funciona para "medir" la lectura sin daños en la RAM, y el resultado de escritura no sería muy distinto asi que en cualquier caso puedes simular el proceso.

Aquí hay un ejemplo para reservar y mapear paginas de memoria física, ésto es un paso adicional necesario que tambien deberia ser cronometrado.

PD: VirtualAlloc es básicamente lo mismo que GetMem con la diferencia que puedes controlar de mejor manera la memoria "agotada".

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #7  
Antiguo 08-09-2008
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.144
Poder: 21
kurono Va por buen camino
ok muchas gracias lo probare solo una duda el ejemplo que pusiste habia dicho que es para la arquitectura de x86 que parametro se cambiaria para la arquictectutra de 64bit

Última edición por kurono fecha: 08-09-2008 a las 03:45:44.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como llenar un stringGrid a partir de un Query? enecumene Conexión con bases de datos 12 25-06-2008 21:00:24
como llenar un combobox y guardar los datos amix Conexión con bases de datos 7 07-10-2007 22:38:07
Como llenar con espacion en blanco o con ceros una cadena? Luis Alberto Varios 10 02-12-2005 19:14:02
Como llenar un combo con campos seleccionados ? Luis Conexión con bases de datos 2 29-09-2004 08:50:04
Como llenar este comboBox pzala Varios 2 14-12-2003 21:26:22


La franja horaria es GMT +2. Ahora son las 23:56:42.


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