Buenas! Después de haber trasteado algo con programitas de Windows, vamos a empezar a tocar cosas más serias, como la realización de un pequeño script para la liberación instantánea de memoria RAM del sistema. Como todos sabéis, hay veces que la memoria en Windows escasea, tanto por acumulación de procesos como por el bloqueo de un programa determinado. Por eso existe la forma de programar un script con la suficiente información para obligar a Windows a liberar parte de su memoria RAM refrescándola y permitiéndonos en un momento de desesperación recuperar el control del sistema (viva el antiformateo y antireiniciadas! XD!). Las directivas de sistema son muy simples, posteriormente iré poniendo algunos scripts más complejos con directivas del sistema que van bastante bien para el uso en windows, pero por ahora empezaremos desde cero. Pues bien, simplemente nos tenemos que poner en un editor de texto plano, dícese el «notepad++» o para los más puristas el bloc de notas y teclear las siguientes líneas:
FreeMem = Space(80000000)
WScript.Echo «La memoria ha sido liberada. By Maktub»
Como podemos observar hay un numerito en la primera directiva, esta tiene el comando Space asociada a la variable FreeMem que lo único que hace es obligar al sistema a liberar la cantidad que ponemos entre paréntesis. Esta cantidad no es aleatoria, tiene que seguir unas normas, por ejemplo, si tenemos 128Mb de RAM (supongo que no habrá nadie) tendríamos que liberar la octava parte de la memoria por seguridad, es decir, 16Mb, con lo que entre paréntesis pondríamos 16000000. Pero si poseemos más de 128Mb (cualquier cantidad) la cantidad máxima de memoria a liberar son 80Mb. Por lo que, por ejemplo, este script está creado para un ordenador con más de 128Mb de RAM.
La segunda directiva es para lanzar un mensaje por pantalla y de este modo enterarnos que la cosa ha surtido efecto. Una vez hayamos escrito estas líneas, guardaremos el fichero con el nombre que deseemos y con la extensión «.vbs». Y ya tendríamos nuestro script preparado para funcionar!
Existe otra forma de crear este script, y es utilizando el comando MYSTRING = (Memoria a liberar) donde entre paréntesis pondremos la cantidad de memoria a liberar que sigue las mismas normas que hemos explicado anteriormente. Además guardaremos este archivo como «.vbe».
Pues bien, esto es todo, espero que os sirva en algún momento de desesperación. Hasta pronto!
Una consulta, hice el script, «primer método» y cuando lo ejecuto me sube los 80MB de ram y cuando le doy en el botón de aceptar me baja a la cantidad de memoria que tenia antes de ejecutar el script. Tengo XP y estoy con un usuario miembro del grupo Admin.
Saludos y espero comentarios!
Buenas! El problema puede venir por varias razones, la primera puede ser que tu sistema operativo haya intentado liberar esta cantidad de memoria sin ningún motivo especial, me explico, si el ordenador está usando procesos crÃticos (de mucha importancia) para el sistema, y liberas memoria sin ninguna razón aparente, lo más seguro es que al poco tiempo (incluso inmediatamente) el sistema recupere esta memoria para seguir con sus procesos. La segunda posibilidad que se me ocurre descartando los procesos crÃticos, es que el script (los comandos) hayan resultado obsoletos. Desconozco si posees algún service pack instalado, pero con el service pack 1 puedo probar que funciona, en cualquier caso Microsoft puede haber cambiado algunas directivas de sistema en sus nuevos service pack, con lo que te recomiendo que pruebes el segundo método (MYSTRING…) que está más a la orden del dÃa. Por último se me ocurre que la directiva incorrecta no sea la de la liberación, sino que sea la de la muestra por pantalla, en cualquier caso puedes probar a quitarla o comentarla para ver si el resultado es el esperado. Bien, espero haber solucionado tu problema, sino no dudes en seguir preguntando. Gracias!
Buenas de nuevo! jejeje, para poder probar lo que te ha pasado he ejecutado varios sistemas operativos en emuladores y algún programa de diseño, además del emule messenger y mozilla, etc. Yo trabajo con Vista, y al ejecutar el primer script me ha bajado de un consumo de memoria del 75% al 60% (como ves no ha podido liberar toda la memoria por que hay procesos crÃticos -> Aún tenÃa abiertos muchos de los programas). Con lo que el funcionamiento es el correcto por que se mantiene en el 60% y no vuelve a subir :S!. De todas formas lo que te he comentado, si sigues teniendo problemas me lo dices y buscamos una solución. Gracias!
Ante todo Maktub debo agradecerte por la rapidez y buena honda para responder mi consulta. ahora lo voy a probar con el segundo comando, en el XP virtualizado en mi UBUNTU 7.10 a través de «VirtualBox»
En respuesta a tus comentarios el XP tiene el SP2 y probé sin la lÃnea de visualización de pantalla y también me pasaba lo mismo.
Pruebo y te comento.
Desde ya muchas gracias por tu tiempo y paciencia.
Nada hombre! aquà estamos para ayudar. Espero que te salga bien la prueba. Si al final no lo consigues y te interesa el tema siempre te puedo pasar mi script por correo, ya que con el mÃo no he tenido problemas(a lo mejor es un rayazo simplemente del sistema).
Suerte y ya me comentas! Xao!