Esto solo es técnicamente posible. Las páginas de memoria se pueden bloquear en la RAM con la función API de VirtualLock(). El problema es que eso requiere el suministro de la dirección de la (s) página (s) que desea bloquear. No puede obtener esta dirección de ninguna manera documentada del recolector de basura. Tampoco promete que la misma dirección para, digamos, el gen # 0 montón será repetible. Por un lado, el tamaño de ese montón es dinámico, por lo general oscila entre 2 y 8 megabytes, dependiendo del patrón de asignación del programa.
Simplemente bloquear aleatoriamente un rango grande con la esperanza de que atrape la mayoría de ellos tampoco funciona. Un proceso obtiene una cuota de páginas bloqueables. No es muy grande, sobre todo porque es tan desestabilizador para el funcionamiento de la máquina. Dragones viven aquí.
¿Por qué quieres evitar esto? =) – Jens
¿Quiere decir además de usarlo? Por lo general, preocuparse por ese tipo de cosas queda en manos del sistema operativo. Simplemente al usarlo, reduce la posibilidad de que se lo coloque en su espacio de intercambio. Si no lo ha usado recientemente, es posible colocarlo en el disco. ¿Ves objetos que se usan con frecuencia en el disco? – Crisfole
Huelo una micro optimización. ¿Cómo sabes que esto es un problema para ti? –