2009-09-08 6 views

Respuesta

48

Desde:

http://gking.harvard.edu/zelig/docs/How_do_I2.html (mirror)

usuarios de Windows pueden obtener el error de que R se ha quedado sin memoria.

Si ha instalado y R ya posteriormente instalar más memoria RAM, es posible que tenga que reinstalar R con el fin de tomar ventaja de la capacidad adicional.

También puede establecer manualmente la cantidad de memoria disponible. Cierre R, y luego haga clic derecho en el icono de su programa R (el icono en su escritorio o en el directorio de programas). Seleccione `` Propiedades '', y luego seleccione la pestaña `` Acceso directo ''. Busque el campo `` Target '' y después del cierre comillas alrededor de la ubicación de la executible R , añadir

-mem-size = 500M --max

como se muestra en la figura siguiente. Puede aumentar este valor hasta 2 GB o se ha instalado cantidad máxima de RAM física .

Si se obtiene el error de que R no puede asignar un vector de longitud x, cerca de R y añadir la siguiente línea a el campo `` Target '':

--max-VSIZE = 500M

o según corresponda. Siempre cheque puede ver la cantidad de memoria R tiene disponible escribiendo en la línea de

memory.limit() 

R que le da la cantidad de memoria disponible en MB. En versiones anteriores de R, usted necesitaba usar: round (memory.limit()/2^20, 2)

+5

Tenga en cuenta que en Windows de 32 bits, R solo puede usar hasta 3Gb de RAM, independientemente de cuánto haya instalado. Hay una versión de 64 bits de R para Windows disponible en REvolution Computing, que se ejecuta en Windows de 64 bits y puede usar toda la memoria RAM disponible: http://www.revolution-computing.com/products/revolution-enterprise.php –

+6

Solo dos notas: (i) memory.limit() solo funciona en Windows, y (ii) el comando que devolverá la respuesta correcta es round (memory.limit(), 2) - al menos en mi versión de R (2.8.1). – medriscoll

+18

¿Alguna sugerencia sobre cómo obtener información similar a memory.limit() trabajando en Linux? – exl

8
  1. Comprar más memoria RAM
  2. Cambiar a un sistema operativo de 64 bits. Combinar con el punto 1.
+12

Comprar más memoria RAM (y cambiar a otro sistema operativo) no es la solución apropiada general. –

+11

Claro que sí, al igual que trabajar en problemas más pequeños que son apropiados para el problema en cuestión. Desear una solución generalmente tampoco te da una. –

4

Microsoft Windows acepta cualquier solicitud de memoria de los procesos si pudiera hacerse.

No hay límite para la memoria que se puede proporcionar a un proceso, excepto el Tamaño de memoria virtual.

Tamaño de memoria virtual es de 4 GB en sistemas de 32 bits para cualquier proceso, sin importar cuántas aplicaciones esté ejecutando. Todos los procesos pueden asignar hasta 4 GB de memoria en sistemas de 32 bits.

En la práctica, Windows asigna automáticamente algunas partes de la memoria asignada desde la RAM o el archivo de página en función de las solicitudes de procesos y el mecanismo del archivo de paginación.

Pero otro límite es el tamaño del archivo de paginación. Si tiene un pequeño archivo de paginación, no puede asignar grandes recuerdos. Puede aumentar el tamaño del archivo de paginación según Microsoft para tener más espacio de memoria.

37

Use memory.limit(). Puede aumentar el valor predeterminado utilizando este comando, memory.limit (size = 2500), donde el tamaño está en MB. Necesita usar 64 bits para aprovechar esto realmente.

Otra sugerencia es usar objetos con memoria eficiente siempre que sea posible: por ejemplo, use una matriz en lugar de un data.frame.

+3

Realmente no entiendo cómo funciona esto. Me encontré con este problema de límite de memoria y recibí el error "Asignación total alcanzada de 8182Mb". Estoy usando 64 bits con 8 GB de ram, así que parecía ser SOL. Sin embargo, para shiggles, configuré memory.limit (size = 50000) ... ¡Y FUNCIONÓ! ¿¿¿Pero por qué??? – theforestecologist

+2

Sé que esto tiene 7 años, pero estoy tratando de reducir la cantidad de RAM que puede usar R pero cada vez que trato de reducir el valor, recibo este mensaje (tengo 12gb Ram en una máquina con Windows de 64 bits) Mensaje de advertencia: En memory.limit (4095): no se puede disminuir el límite de memoria: se ignora – hellter

Cuestiones relacionadas