elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 08:37  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  [Solucionado] Optimizar ram
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Optimizar ram  (Leído 1,842 veces)
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
[Solucionado] Optimizar ram
« en: 3 Mayo 2011, 09:37 »

Hola, necesito saber cómo puedo optimizar la ram, es decir dejar la mayor cantidad posible de espacio libre, tengo un codigo que encontre en google pero casi no hace nada, se nota pero muy despacito y poco a poco, yo necesito algo mas rapido, se que vaciar la ram es lento, pero con este codigo es mucho mas lento de lo normal, y ademas este codigo retorna acceso denegado:
Código
'Previamente se declara la función utilizando Kernel32
Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal process As IntPtr, ByVal minimumWorkingSetSize As Integer, ByVal maximumWorkingSetSize As Integer) As Integer
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   'Código dentro de un botón
       Try
           GC.Collect()
           GC.WaitForPendingFinalizers()
           If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
               SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
               Dim myProcesses As Process() = Process.GetProcesses(Environment.MachineName.ToString)
               Dim myProcess As Process
               For Each myProcess In myProcesses
                   SetProcessWorkingSetSize(myProcess.Handle, -1, -1)
               Next myProcess
           End If
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
End Sub
 

Cambiando esta linea:
Código
Dim myProcesses As Process() = Process.GetProcesses(Environment.MachineName.ToString)
 

Por esta otra:
Código
Dim myProcesses As Process() = Process.GetProcessesByName("chrome") 'Vacia la memoria ram de todos los procesos que sean chrome.exe
 

Se nota mas rapido la diferencia y si se mira el taskmanager se ve como la memoria desciende al minimo, si estas un rato sin usar el chrome y lo haces baja la memoria y se mantiene abajo, si le has usado hacia poco o lo estas usando, baja la memoria un segundo y vuelve a subir, necesito algo que libere el maximo espacio posible, por favor denme una mano, saludos


« Última modificación: 14 Mayo 2011, 19:03 por Segurida » En línea
[D4N93R]
Moderador
***
Desconectado Desconectado

Mensajes: 1.647


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Optimizar ram
« Respuesta #1 en: 3 Mayo 2011, 22:06 »

Puedes replantear la pregunta por favor, no entendí muy bien.. :)


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Optimizar ram
« Respuesta #2 en: 4 Mayo 2011, 03:15 »

Hola, esto funciona, cuando lo ejecute me ocupaba 10 megas, y despues 860 kb.

Código
Public Class Form1
   Private Declare Auto Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal procHandle As IntPtr, ByVal min As Int32, ByVal max As Int32) As Boolean
 
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
           Dim Mem As Process = Process.GetCurrentProcess()
           SetProcessWorkingSetSize(Mem.Handle, -1, -1)
       End If
   End Sub
End Class

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Optimizar ram
« Respuesta #3 en: 4 Mayo 2011, 23:34 »

@[D4N93R] Lo que necesito es vaciar la memoria ram desde VB.net (vb 2008) tengo el código que dije antes que funciona pero lo hace muy despacio, y hay que especificar el nombre del proceso, necesito que lo haga o bien con todos los procesos, sin tener que especificar uno a uno manualmente, o bien con la memoria, he leído que se puede vaciar la ram al archivo de paginación de windows (pagefile) pero no se hacerlo, por eso pido ayuda, me da igual un camino que otro, pero prefiero el camino mas rápido par vaciar la mayor cantidad posible de ram, en definitiva, una forma de optimizar, desfragmentar o liberar la memoria ram, pero una forma que funcione y se note una diferencia rápida.
@seba123neo Eso solo funciona con la aplicación actual, lo necesito para todos los procesos o toda la memoria ram...

gracias a los dos por la ayuda y esfuerzo, se los agradezco, si se les ocurre algo aqui estaré :)
En línea
seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Optimizar ram
« Respuesta #4 en: 5 Mayo 2011, 01:35 »

no tenia idea que funcionaba con otros procesos, todos los ejemplos que hay en internet son para el propio proceso.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Optimizar ram
« Respuesta #5 en: 5 Mayo 2011, 13:14 »

@seba123neo el código que puse al principio, o hace con todos, pero la gran mayoría devuelve acceso denegado, y necesito algo para que funcione con todos, de la manera que propongo, o de otra diferente, ya me quedé sin ideas...
gracias de nuevo :)
En línea
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Optimizar ram
« Respuesta #6 en: 5 Mayo 2011, 14:59 »

La función SetProcessWorkingSetSize no optimiza la memoria RAM, más bien al contrario. Lo que hace es volcar parte de la memoria RAM de un proceso en la memoria VIRTUAL del sistema, haciendo que la aplicación trabaje más lenta pero consuma menos memoria.

De la administración de la memoria se tiene que encargar el sistema operativo, no una aplicación ejecutándose en el CIL corriendo en el RING 3...

Saludos.
En línea

Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Optimizar ram
« Respuesta #7 en: 5 Mayo 2011, 19:42 »

@Khronos14 Realmente lo que se dice optimizar, no lo hace, pero si vacía la memoria, y permite que el sistema operativo reaccione cuando se cuelga, o que vaya más rápido cuando se ralentiza...
Por eso necesito un camino para poder hacerlo con todos los procesos, o hacer algo para que vacíe la mayor cantidad posible de ram...
En línea
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Optimizar ram
« Respuesta #8 en: 5 Mayo 2011, 20:19 »

@Segurida ¿sabes lo que es la memoria virtual?

La memoria virtual es una región del disco duro que se emplea como memoria auxiliar a la RAM, por ejemplo, cuando no queda más memoria RAM. Si fuerzas a que los procesos vuelquen parte de su memoria RAM en el disco, provocas más accesos al disco duro, haciendo que el sistema vaya más lento.

Es imposible que el sistema vaya más rápido cuando se ralentiza. La memoria RAM tiene un tiempo de acceso ínfimo, en cambio los discos duros son lentísimos en comparación con la memoria RAM, además que tienen una velocidad de lectura y escritura limitada.
En línea

Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Optimizar ram
« Respuesta #9 en: 6 Mayo 2011, 11:25 »

@Khronos14 La memoria virtual creo que es el archivo pagefile, pero no sabia que lo ralentizara, en mi compu cuando vacio parte de la ram de esa manera, no se ralentiza, entonces ¿hay alguna manera de optimizar el sistema para acelerarlo, aunque sea temporalmente?
gracias
En línea
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Optimizar ram
« Respuesta #10 en: 6 Mayo 2011, 15:00 »

@Segurida, ¿te crees que si hubiera una forma, Microsoft no la implementaría? xD
En línea

Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Optimizar ram [Tema resuelto]
« Respuesta #11 en: 8 Mayo 2011, 17:24 »

@Khronos14 Si, eso es verdad, pero yo pensé que había alguna manera.
Muchas gracias a todos, tema resuelto.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Optimizar la pc.
Windows
Commander 4 588 Último mensaje 11 Febrero 2008, 03:10
por l337*
Optimizar FPS del CSS
Juegos y Consolas
ZoNike 3 1,583 Último mensaje 19 Julio 2008, 16:00
por Alamasy
Optimizar el Pc
Dudas Generales
defkon2 8 870 Último mensaje 26 Mayo 2009, 17:39
por Artikbot
Optimizar PC
Hardware
s3tH 10 1,388 Último mensaje 28 Agosto 2009, 12:45
por Erik#
optimizar pc
Software
javierdeejay 10 2,502 Último mensaje 3 Abril 2011, 13:47
por ciempies
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines