Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   KMem (https://www.clubdelphi.com/foros/showthread.php?t=64314)

Khronos 26-03-2009 17:12:07

KMem
 
KMem es un sencillo programa que he hecho para liberar la memoria de los procesos del sistema y hacer que tu Windows se másl ligero!

Para ver una demostración ---> http://www.youtube.com/watch?v=lvijpR5bG88

Para descargarlo ----> http://rapidshare.com/files/213805364/KMem.rar.html


PD. Dentro de poco subiré el código fuente, no es nada del otro mundo :D

Saludos.

Neftali [Germán.Estévez] 26-03-2009 17:48:14

Gracias por el oporte Khronos. Muy interesante.

Por cierto, revisa el link de descarga, que creo que es incorrecto.

Un saludo.

Khronos 26-03-2009 19:22:36

Si cierto neftali, ya esta.

http://rapidshare.com/files/213805364/KMem.rar.html

Khronos 28-03-2009 01:31:03

Hola, esta tarde me concedieron un espacio en sourceforge para subir mi programa.

http://sourceforge.net/project/showf...kage_id=316055
http://khronosmemory.sourceforge.net/


Pueden descargar el código fuente o el instalador del programa.

Saludos.

cHackAll 28-03-2009 02:27:47

bien! gracias por el aporte Khronos.
Esto no afecta al rendimiento en ordenadores con poca RAM?


Saludos

dec 28-03-2009 09:27:39

Hola,

Gracias por compartir tu trabajo. ;) Aquí van unas cuantas sugerencias, a ver qué te parecen.

Valores INI por defecto

Cuando lees un "archivo de idioma", podrías proporcionar un valor "por defecto" a cada valor, para el caso de que una determinda "clave" no se encuentre en el archivo de idioma, o bien tenga un valor (o pueda tener un valor) "vacío".

El método "ExtractName()"

Podría tal vez sustituirse por una sola instrucción, tal que:

Código Delphi [-]
LangBox.Items.Add(ChangeFileExt(ExtractFileName(Rec.Name), ''));

Identificadores anónimos (!)

¿Label1, Label2, Label3? Todavía lo puedo entender... pero ¿V1, V2, V3? El nombre de los identificadores es importante, ayuda a la legibilidad del código fuente. Je je je je... qué puñetero soy. :D

¿SetProcessWorkingSetSize?

Me temo que he escrito algo sobre este asunto... y creo que no te va a gustar. Me quedó y aun me queda por saber sobre el asunto. Mira, tal vez sea este un buen sitio para discutir sobre el tema, si es menester.

Sea como sea, gracias por compartir tu trabajo. ;)

Khronos 28-03-2009 14:38:59

Hola, gracias por responder cHackAll y Dec.

Investigué bastante sobre la API SetProcessWorkingSetSize, aunque no tanto como tú dec :D
Ya sabía que movía partes de la memoria física a la memoria virtual del sistema, pero si Windows lo hace cada vez que minimizas un programa no tiene porque ser perjudicial ¿no?.

Aver este programa lo hice en una tarde de aburrimiento, y si que se nota la diferencia con ciertas tarjetas gráficas, me explico. Como seguramente sabréis hay tarjetas gráficas que no tienen una propia memoria dedicada, si no que emplean la memoria RAM para el renderizado de los gráficos. Usando KMem, tendremos un mayor consumo de memoria virtual pero dejaremos la memoria RAM "más ligera" para otros menesteres como bien puede ser este. Más bien KMem pienso que está pensado para ordenadores con poca memoria.

Y si Dec, en otros proyectos le dedico bastante más tiempo al nombre de los identificadores pero este programa lo hice bastante rápido. Me llevó más trabajo el instalador que el programa :D:D:D

Saludos.

Khronos 28-03-2009 16:03:24

Cita:

Valores INI por defecto

Cuando lees un "archivo de idioma", podrías proporcionar un valor "por defecto" a cada valor, para el caso de que una determinda "clave" no se encuentre en el archivo de idioma, o bien tenga un valor (o pueda tener un valor) "vacío".

Código Delphi [-]
procedure TFMain.FormCreate(Sender: TObject);
var
Reg: TRegistry;
i: integer;
begin
LoadLangs();
//En este procedimiento si no encuentra los archivos .lang en la carpeta \lang
//informa que se usará como idioma el español.


  try
    Reg:= TRegistry.Create;
    Reg.RootKey:= HKEY_CURRENT_USER;
    Reg.OpenKey('\Software\KMem', true);
    if Reg.ValueExists('Speed') = false then Reg.WriteInteger('Speed', 3);
    if Reg.ValueExists('StartUp') = false then Reg.WriteBool('StartUp', true);
    if Reg.ValueExists('Ico') = false then Reg.WriteBool('Ico', true);
    if Reg.ValueExists('Lang') = false then Reg.WriteString('Lang', 'spanish');

    i:= langbox.Items.IndexOf(Reg.ReadString('Lang'));
    if i > -1 then
      begin
        langbox.ItemIndex:= i;
        langbox.OnChange(sender);
      end;

    tbTime.Position:= Reg.ReadInteger('Speed');
    CheckBox1.Checked:= Reg.ReadBool('StartUp');
    CheckBox2.Checked:= Reg.ReadBool('Ico');
  finally
    Reg.Free;
  end;
   try
     Reg:= TRegistry.Create;
     Reg.RootKey:= HKEY_LOCAL_MACHINE;
     Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', false);
     Reg.WriteString('KMem', Paramstr(0));
   finally
     Reg.free;
   end;
   If CheckBox2.Checked = false then  TrayIcon1.Visible:= false;
end;

Saludos.


La franja horaria es GMT +2. Ahora son las 00:41:20.

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