Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2011, 07:36
DavidRR
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación Otimizar memoria RAM

Tengo un problema que me trae dolores de cabeza, necesito optimizar al máximo la memoria RAM, sin depender de cuanta tenga el equipo, es decir, liberar el máximo espacio posible en la memoria RAM sin importar la capacidad, necesito hacerlo por código (sin ejecutar otros archivos, y sin DDL) mediante Visual Basic 2008 Express, tengo un código que me permite reducir el espacio en memoria de cada proceso, pero me da un error de "Acceso Denegado", os pongo el código por si se os ocurre cómo modificarlo para que funcione, y si se os ocurre otro diferente, estoy abierto a sugerencias si no implican archivos a parte (por ejemplo: .vbs, .dll, .exe, etc...), el código es el siguiente:
Código vb:
Ver original
  1. 'Previamente se declara la función utilizando Kernel32
  2. Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal process As IntPtr, ByVal minimumWorkingSetSize As Integer, ByVal maximumWorkingSetSize As Integer) As Integer
  3.  
  4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.     'Código dentro de un botón
  6.        Try
  7.             GC.Collect()
  8.             GC.WaitForPendingFinalizers()
  9.             If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
  10.                 SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
  11.                 Dim myProcesses As Process() = Process.GetProcesses(Environment.MachineName.ToString)
  12.                 Dim myProcess As Process
  13.                 For Each myProcess In myProcesses
  14.                     SetProcessWorkingSetSize(myProcess.Handle, -1, -1)
  15.                 Next myProcess
  16.             End If
  17.         Catch ex As Exception
  18.             MsgBox(ex.Message)
  19.         End Try
  20. End Sub

Si me podéis ayudar, os lo agradezco.
Un saludo.

Última edición por DavidRR; 01/05/2011 a las 08:44