¿Hay alguna forma (aplicación) de controlar la política de uso de RAM / intercambio a nivel de aplicación?
Tengo algunas aplicaciones que uso todo el tiempo y quiero que permanezcan en la RAM todo el tiempo y también hay aplicaciones que utilizo muy raramente y podrían lanzarse para intercambiar a pedido. Sé que las ventanas configuradas por defecto deberían darme el mejor rendimiento, pero quiero verificar si puedo obtener más :).
Yo uso Windows 7.
windows-7
performance
swap
Darqer
fuente
fuente
Respuestas:
Sí, hay: haga que el programa llame a la función VirtualLock :
Creo que la función SetProcessWorkingSetSize también podría ser útil.
Para aquellas personas que piensan que soy un hereje por incluso sugerir que esto podría ser útil:
Tenga en cuenta que puede haber razones válidas para bloquear páginas en la memoria. Una razón válida podría ser que el usuario está ejecutando una grabadora de CD, y la grabadora de CD sale constantemente de las páginas y, por lo tanto, causa una falta de memoria intermedia, creando una montaña rusa. En esa situación, sería válido bloquear los búferes de memoria para que no se paginen, incluso si eso significa que el resto de la computadora se ralentiza, porque eso es aún mejor que darle al usuario una montaña rusa. También puede haber otras razones válidas: mi punto es que, aunque generalmente no se recomienda bloquear páginas en la memoria, todavía existen situaciones válidas y no creo que matar la idea ayude al OP aquí.
Actualización: Echa un vistazo a la
Reduce Working Set
opción de menú de Process Hacker .fuente
SetProcessWorkingSetSize
. Esa es una forma. Por supuesto, si no sabes lo que eso significa porque no eres un desarrollador, entonces obviamente no hay mucho que puedas hacer. Pero aún es posible, y decir que es imposible sigue siendo incorrecto, solo requiere más conocimiento del que podría tener el OP.La única forma que encontré es deshabilitar el archivo de página. Sin embargo, no es una solución perfecta: recibirá mensajes de error si se acerca o supera su límite de RAM, y es posible que no guarde los volcados de memoria correctamente, así que actívelo nuevamente si necesita solucionar problemas. Aparte de eso, he estado usando Win7 sin archivo de paginación durante meses sin problemas.
Mi experiencia: tuve este problema con un software de piano (uso de 1 GB de RAM) que sería intercambiado después de no usarse por un tiempo. Tocar una tecla del piano unas horas más tarde daría lugar a un desorden glitchy ya que el intercambio no se volvería a cargar lo suficientemente rápido como para reproducir el sonido. (¡Entonces pondría todo mi brazo en cada tecla para forzar una recarga!)
Si le preocupa la RAM, le sugiero que compre más (por ejemplo, de 8 a 12 GB con Windows 7 x64). Para los conscientes de RAM, tener abundante RAM es un regalo del cielo.
Pero antes, debe considerar obtener una unidad SSD y poner su intercambio en ella. Acelerará en gran medida la recuperación de intercambio, además de proporcionar muchos otros beneficios del sistema. RAM no proporciona beneficios cuando no está en uso.
fuente
El uso del archivo de página depende de muchos factores. Si usa muchos programas y no tiene suficiente RAM para todos al mismo tiempo, entonces parte de ellos (o todos) pueden cambiarse al archivo de la página.
Si tiene 4 GB de RAM y, digamos, alrededor de 3 GB está disponible debido a que las tarjetas de video y otros usuarios de recursos bloquean partes de los 4 GB, y solo usa algunos programas que no ocupan mucha memoria, en teoría usted nunca debería necesitar un archivo de intercambio. Sin embargo, Windows Vista y 7 son notoriamente agresivos en su intercambio de programas al disco.
Solía tener una configuración que reducía el intercambio de Windows 7 (intercambio es un término de Linux pero también se aplica a Windows, y dado que hay una configuración de registro para domar la agresividad del intercambio de Windows, parece que Microsoft acepta de mala gana, aunque en un pozo de manera oculta), pero parece que ya no puedo encontrarlo. Al buscarlo es como terminé aquí. La mejor alternativa a esta configuración que he encontrado es asegurarme de que use un archivo de intercambio de tamaño fijo (voy por 4096-4096 en sistemas operativos de 32 bits y 12 GB en sistemas operativos de 64 bits, ya que tengo 6 GB de RAM del sistema) en una partición dedicada. Con una unidad de disco de 7200 rpm de 200 GB, coloco todas mis particiones de intercambio (Windows XP, 7, 7 de 64 bits y varias Linux) en esta unidad. Parece funcionar para mí, pero YMMV.
fuente
Vale la pena mencionar: cuando Windows detecta que estás usando ciertas aplicaciones con frecuencia, tiene la superfetch para poner esas aplicaciones en la memoria para que se carguen más rápido. Creo que confiar en Windows para hacer lo suyo aquí.
fuente