jueves, 28 de mayo de 2009

Not enough storage is available

Hace unos días comencé a recibir este mensaje a la hora de compilar desde Visual Studio 2008 el proyecto en el que llevaba un tiempo trabajando y, aunque al principio no me preocupaba en exceso debido a que el error era muy ocasional y se solucionaba reiniciando VS, llegó un punto en el que la frecuencia del error y el echo que en ocasiones reiniciar la aplicación no solucionara el problema hizo que me planteara buscar una solución definitiva.

La verdad es que no resultó sencillo, ya que no era ningún error en mi código lo que provocaba esa situación. Directamente era el compilador el que decidía no seguir trabajando. Finalmente, tras una serie de pruebas y de cambios en mi sistema no pude obtener más información de la que ya tenía, y es que parecía algo relacionado con la falta de memoria disponible. Pero, ¿es posible que en una máquina recíén instalada, con 4GB de memoria RAM (2 de ellos disponibles) diera ese problema? algunos posts hablaban de falta de espacio en disco, pero tampoco era el caso.

Finalmente, opté por la mejor solución que se me ocurría: preguntar a mi compañero Andrés Ramón, que es la persona que mejor es capaz de encontrar la solución a un problema en internet (entre nosotros, yo creo que tiene una conexión directa a las bases de datos de los buscadores para hacer consultas con un algoritmo mejorado por él mismo).

El caso es que encontró por algún sitio que el problema venía dado por el hecho que, por defecto, Visual Studio 2008 usa menos memoria de la que tu equipo tiene. Pero, lo importante, ¿cómo se soluciona esto? De una manera muy fácil. Basta con abrir con permisos de administrador un símbolo de sistema de Visual Studio y ejecutar el siguiente comando:

"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\editbin.exe" /LARGEADDRESSAWARE "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe

Esto es parte de la solución, porque dependiendo del sistema operativo que tengas, poco importará la cantidad de RAM que tengas, no se usará toda la disponible. En sistemas operativos como XP era necesario editar el fichero boot.ini y añadir la opción /PAE /3G en la línea correspondiente a dicho sistema. Para sistemas operativos como Windows Vista o Windows 7 necesitaremos utilizar los siguientes comandos desde un símbolo de sistema (siempre con permisos de administrador)

BCDEDIT /SET PAE ForceEnable
BCDEDIT /Set IncreaseUserVa 3072

En fin, espero que os resulte de ayuda si tenéis un problema como éste y, si es el caso, que le pongáis una velita a Andrés como ya he hecho yo en múltiples ocasiones.

0 comentarios: