Foros

¿Son suficientes 8 GB de RAM para programar?

iMacedonio

Poster original
Oct 10, 2015
Brno, CZ
  • 15 de diciembre de 2018
Hola.

Estoy considerando seriamente adquirir una MacBook Pro 13 '2018. El uso principal de la computadora portátil sería para la codificación (desarrollo web front-end), pero me gustaría profundizar en el desarrollo de aplicaciones iOS más adelante. Dicho esto, ¿son suficientes 8 GB de RAM para ejecutar XCODE o debería invertir un poco más para obtener la versión de 16 GB?

revmaciano

Oct 20, 2018


USA
  • 15 de diciembre de 2018
iMacedonian dijo: Hola.

Estoy considerando seriamente adquirir una MacBook Pro 13 '2018. El uso principal de la computadora portátil sería para la codificación (desarrollo web front-end), pero me gustaría profundizar en el desarrollo de aplicaciones iOS más adelante. Dicho esto, ¿son suficientes 8 GB de RAM para ejecutar XCODE o debería invertir un poco más para obtener la versión de 16 GB?
Ejecuto Xcode en mi Mac mini 2014: tiene 4 GB de RAM y no veo ningún problema. Habrá algunas personas que le dirán que 16 GB o más de RAM son imprescindibles, pero he visto que esto simplemente no es cierto.
Reacciones:jeremiah256, racerhomie, BigMcGuire y 1 persona más

Emanuel Rodriguez

Oct 17, 2018
  • 15 de diciembre de 2018
revmacian dijo: Ejecuto Xcode en mi Mac mini 2014, tiene 4 GB de RAM y no veo ningún problema. Habrá algunas personas que le dirán que 16 GB o más de RAM son imprescindibles, pero he visto que esto simplemente no es cierto.
Acordado. Descubrí que incluso una Raspberry Pi con su único giga de RAM es capaz de compilar la mayoría de las cosas. Si un proyecto tiene una tonelada de código C ++ (mirándolo LLVM) u otros lenguajes complejos (que requieren que el compilador trabaje duro y, por lo tanto, use más RAM), entonces generalmente no puede administrarlo. En mi experiencia, parece que alrededor de 3 GB es un mínimo seguro para el trabajo de desarrollo.

EDITAR: Aunque tenga en cuenta que se trataba de 3 GB dentro de una máquina virtual, sin una GUI. La opción de 8GB es definitivamente segura, por ahora. Sin embargo, recomendaría 16 GB solo para pruebas futuras. 8GB está comenzando a ser menos cómodo que en el pasado. Última edición: 15 de diciembre de 2018
Reacciones:BigMcGuire, jaduff46 y iMacedonian A

ammulder

18 de diciembre de 2015
  • 16 de diciembre de 2018
¿Cuánto tiempo planeas conservar la máquina? Dado que la memoria no se puede actualizar, realmente está comprando la cantidad de memoria que necesitará en 3-5 años, no hoy. (Teniendo en cuenta que cada versión de herramientas de desarrollo usa más memoria que la anterior). Particularmente si termina usando contenedores o VM (por ejemplo, para ejecutar una versión local de algún back-end al que se conecta su aplicación), el impacto de productividad de muy poca memoria más tarde no vale la pena el ahorro de costes ahora.
Reacciones:jeremiah256, racerhomie, iMacedonian y otra persona

perros lobber

Oct 19, 2014
Apple Campus, Cupertino CA
  • 16 de diciembre de 2018
Recuerde programar en 4K en 1976.
Reacciones:PhilMacbook

960 diseño

17 de abril de 2012
Destiny, Florida
  • 17 de diciembre de 2018
iMacedonian dijo: Hola.

Estoy considerando seriamente adquirir una MacBook Pro 13 '2018. El uso principal de la computadora portátil sería para la codificación (desarrollo web front-end), pero me gustaría profundizar en el desarrollo de aplicaciones iOS más adelante. Dicho esto, ¿son suficientes 8 GB de RAM para ejecutar XCODE o debería invertir un poco más para obtener la versión de 16 GB?
8GB es suficiente, uso un MBPr de 16GB y rara vez veo que la presión de la memoria suba por encima de los 8GB.

Como acotación al margen, visite Expo.io ( https://expo.io/ ). Es lo que usan todos los niños geniales en estos días (mucho más fácil de implementar en múltiples plataformas). Advertencia: funcionará para la mayoría de las aplicaciones, pero algunas tienen requisitos / necesidades de hardware específicos que expo no cumplirá. No obstante, es un fantástico punto de partida.
Reacciones:iMacedonio J

jtara

Mar 23, 2009
  • 17 de diciembre de 2018
¿Define lo que quiere decir con 'suficiente'?

¿Quieres decir 'suficiente para que las construcciones no fallen?'

¿O 'lo suficiente para que las compilaciones se completen en un período de tiempo aceptable'?

¿Y / o lo suficiente como para que la interfaz de usuario no se retrase y pueda trabajar en un editor / navegar por la web / leer el correo electrónico durante una compilación sin lentitud?

Depende de sus expectativas y de su cadena de herramientas.

El desarrollo de frontend generalmente tiene una cadena de herramientas corta / simple. Todo lo que realmente necesita es un buen editor adecuado para la tarea, un pequeño servidor web de 'juguete', quizás algunas herramientas para minificar Javascript / CSS (y quizás un compilador Sass) para compilaciones de producción, y durante el desarrollo normalmente ni siquiera usaría ese.

El desarrollo de backend a menudo no necesita más que un desarrollo de front-end. O puede que necesite un poco más. Por ejemplo, uso PostgreSQL como base de datos. Entonces, tengo una instancia local para desarrollo / prueba. Ejecuto pgAdmin4, que se ejecuta en un contenedor Docker. Es posible que deba ejecutar una máquina virtual que replique su entorno de backend. Los GB se suman.

El desarrollo de aplicaciones nativas a menudo se realiza con herramientas mínimas. Para el desarrollo básico de aplicaciones iOS, no necesita nada más que Xcode. OK, y el simulador de iOS. Si está realizando algún tipo de desarrollo híbrido multiplataforma, probablemente agregue componentes adicionales de la cadena de herramientas y, por necesidad, SDK de Android y herramientas de compilación. El desarrollo de Android usa un compilador diferente. Agrega otro simulador. (Yo uso GenyMotion, ya que ambos enfoques proporcionados por Google son lentos como la melaza). Cualquier simulador de Android decente se ejecuta en una máquina virtual.

Oh, ¿necesitas probar ese sitio web en Windows? Agregue una máquina virtual de Windows.

Hoy en día, muchas herramientas se ejecutan en un contenedor o en una máquina virtual. Eso se suma al requisito de memoria.

Obtenga tanta memoria como le permita su presupuesto. Sin embargo, creo que 64 GB es el límite práctico hoy para la mayoría de los desarrollos. Recientemente obtuve un iMac Pro con 64 GB para desarrollo. Utilizo un gran juego de herramientas. He estado comprobando el Monitor de actividad y descubro que todavía no he utilizado un archivo de intercambio. Pero una vez que todas las herramientas están cargadas, estoy usando entre 32 GB y 64 GB, normalmente entre 40 y 50 GB. Pero en realidad todavía no he cargado TODO a la vez.

Lo que tienes que preguntarte es:

- ¿Es importante que el sistema responda durante la construcción?
- ¿Cuánto tiempo de ciclo de construcción está dispuesto a tolerar?

En el desarrollo de front-end, normalmente no tiene un 'ciclo de compilación', es decir, compilación / prueba / repetición. ¿Cuánto tiempo está dispuesto a esperar para descubrir que cometió un simple error que tardará unos segundos en corregir? ¿15 minutos? ¿5 minutos? ¿1 minuto? ¿30 segundos?

En el desarrollo de aplicaciones con un lenguaje compilado, siempre tiene un ciclo de compilación y puede ser significativo. Entiendo que el ciclo de compilación de Swift es sustancialmente más largo que el ciclo de compilación de Objective-C. (Yo no uso Swift, porque hago desarrollo híbrido y el código de la plataforma subyacente está en Objective-C (Java para Android), C y C ++, no Swift).

La cantidad de RAM disponible tendrá un impacto significativo en el tiempo del ciclo de construcción.
Reacciones:tegranjeet, quietstormSD, Anony-mouse y otra persona METRO

mpe

Sep 3, 2010
  • 17 de diciembre de 2018
Usuario de iMac Pro de 32 GB aquí.

Si. 8 GB de RAM son suficientes para la mayoría de las cosas.
Reacciones:iMacedonio J

jtara

Mar 23, 2009
  • 17 de diciembre de 2018
mpe dijo: Sí. 8 GB de RAM son suficientes para la mayoría de las cosas.

¿MacBook Pro usa memoria del sistema para la pantalla?

Seguramente 8GB no es suficiente en, por ejemplo, una Mac Mini, ya que una buena parte (según el modelo) se usa para la pantalla.

La retroalimentación más importante que se brinda aquí es que en las MacBooks recientes, la memoria está soldada. Está tomando una decisión para los próximos años.
Reacciones:iMacedonio

Toutou

a
6 de enero de 2015
Praga, República Checa
  • 17 de diciembre de 2018
Si tienes un presupuesto limitado (y no hay vergüenza en eso), 8 conciertos serán suficientes. Si bien algunas herramientas de desarrollo tienen bastante RAM (* tos * Android Studio * tos *), mi 4 gig 2013 Pro todavía se puede usar. Y mi ThinkPad emitido por el trabajo en el que desarrollo Rails (en RubyMine, en Linux) funciona a la perfección con 8 gigas.
Reacciones:iMacedonio

iMacedonio

Poster original
Oct 10, 2015
Brno, CZ
  • 17 de diciembre de 2018
jtara dijo: ¿Define lo que quiere decir con 'suficiente'?

¿Quieres decir 'lo suficiente para que las construcciones no fallen?'

¿O 'lo suficiente para que las compilaciones se completen en un período de tiempo aceptable'?

¿Y / o lo suficiente como para que la interfaz de usuario no se retrase y pueda trabajar en un editor / navegar por la web / leer el correo electrónico durante una compilación sin lentitud?

Depende de sus expectativas y de su cadena de herramientas.

El desarrollo de frontend generalmente tiene una cadena de herramientas corta / simple. Todo lo que realmente necesita es un buen editor adecuado para la tarea, un pequeño servidor web de 'juguete', quizás algunas herramientas para minificar Javascript / CSS (y quizás un compilador Sass) para compilaciones de producción, y durante el desarrollo normalmente ni siquiera usaría ese.

El desarrollo de backend a menudo no necesita más que un desarrollo de front-end. O puede que necesite un poco más. Por ejemplo, uso PostgreSQL como base de datos. Entonces, tengo una instancia local para desarrollo / prueba. Ejecuto pgAdmin4, que se ejecuta en un contenedor Docker. Es posible que deba ejecutar una máquina virtual que replique su entorno de backend. Los GB se suman.

El desarrollo de aplicaciones nativas a menudo se realiza con herramientas mínimas. Para el desarrollo básico de aplicaciones iOS, no necesita nada más que Xcode. OK, y el simulador de iOS. Si está realizando algún tipo de desarrollo híbrido multiplataforma, probablemente agregue componentes adicionales de la cadena de herramientas y, por necesidad, SDK de Android y herramientas de compilación. El desarrollo de Android usa un compilador diferente. Agrega otro simulador. (Yo uso GenyMotion, ya que ambos enfoques proporcionados por Google son lentos como la melaza). Cualquier simulador de Android decente se ejecuta en una máquina virtual.

Oh, ¿necesitas probar ese sitio web en Windows? Agregue una máquina virtual de Windows.

Hoy en día, muchas herramientas se ejecutan en un contenedor o en una máquina virtual. Eso se suma al requisito de memoria.

Obtenga tanta memoria como le permita su presupuesto. Sin embargo, creo que 64 GB es el límite práctico hoy para la mayoría de los desarrollos. Recientemente obtuve un iMac Pro con 64 GB para desarrollo. Utilizo un gran juego de herramientas. He estado comprobando el Monitor de actividad y descubro que todavía no he utilizado un archivo de intercambio. Pero una vez que todas las herramientas están cargadas, estoy usando entre 32 GB y 64 GB, normalmente entre 40 y 50 GB. Pero en realidad todavía no he cargado TODO a la vez.

Lo que tienes que preguntarte es:

- ¿Es importante que el sistema responda durante la construcción?
- ¿Cuánto tiempo de ciclo de construcción está dispuesto a tolerar?

En el desarrollo de front-end, normalmente no tiene un 'ciclo de compilación', es decir, compilación / prueba / repetición. ¿Cuánto tiempo está dispuesto a esperar para descubrir que cometió un simple error que tardará unos segundos en corregir? ¿15 minutos? ¿5 minutos? ¿1 minuto? ¿30 segundos?

En el desarrollo de aplicaciones con un lenguaje compilado, siempre tiene un ciclo de compilación y puede ser significativo. Entiendo que el ciclo de compilación de Swift es sustancialmente más largo que el ciclo de compilación de Objective-C. (Yo no uso Swift, porque hago desarrollo híbrido y el código de la plataforma subyacente está en Objective-C (Java para Android), C y C ++, no Swift).

La cantidad de RAM disponible tendrá un impacto significativo en el tiempo del ciclo de construcción.
Gracias por esa amplia respuesta, me dio una mejor perspectiva sobre los recursos necesarios para estos diversos escenarios de codificación que ha mencionado.
[doublepost = 1545084766] [/ doublepost]
ammulder dijo: ¿Cuánto tiempo planeas conservar la máquina? Dado que la memoria no se puede actualizar, realmente está comprando la cantidad de memoria que necesitará en 3-5 años, no hoy. (Teniendo en cuenta que cada versión de herramientas de desarrollo usa más memoria que la anterior). Particularmente si termina usando contenedores o VM (por ejemplo, para ejecutar una versión local de algún back-end al que se conecta su aplicación), el impacto de productividad de muy poca memoria más tarde no vale la pena el ahorro de costes ahora.
Mis computadoras portátiles suelen durar de 4 a 6 años, o incluso más, por lo que, según lo que he leído hasta ahora, tal vez sea mejor obtener la versión de 16 GB si quiero maximizar el uso. A

Anony-mouse

25 de agosto de 2016
  • 17 de diciembre de 2018
jtara dijo: ¿Define lo que quiere decir con 'suficiente'?

(recorte)

Hoy en día, muchas herramientas se ejecutan en un contenedor o en una máquina virtual. Eso se suma al requisito de memoria.

Obtenga tanta memoria como le permita su presupuesto. Sin embargo, creo que 64 GB es el límite práctico hoy para la mayoría de los desarrollos. Recientemente obtuve un iMac Pro con 64 GB para desarrollo. Utilizo un gran juego de herramientas. He estado comprobando el Monitor de actividad y descubro que todavía no he utilizado un archivo de intercambio. Pero una vez que todas las herramientas están cargadas, estoy usando entre 32 GB y 64 GB, normalmente entre 40 y 50 GB. Pero en realidad todavía no he cargado TODO a la vez.

Lo que tienes que preguntarte es:

- ¿Es importante que el sistema responda durante la construcción?
- ¿Cuánto tiempo de ciclo de construcción está dispuesto a tolerar?

En el desarrollo de front-end, normalmente no tiene un 'ciclo de compilación', es decir, compilación / prueba / repetición. ¿Cuánto tiempo está dispuesto a esperar para descubrir que cometió un simple error que tardará unos segundos en corregir? ¿15 minutos? ¿5 minutos? ¿1 minuto? ¿30 segundos?

En el desarrollo de aplicaciones con un lenguaje compilado, siempre tiene un ciclo de compilación y puede ser significativo. Entiendo que el ciclo de compilación de Swift es sustancialmente más largo que el ciclo de compilación de Objective-C. (Yo no uso Swift, porque hago desarrollo híbrido y el código de la plataforma subyacente está en Objective-C (Java para Android), C y C ++, no Swift).

La cantidad de RAM disponible tendrá un impacto significativo en el tiempo del ciclo de construcción.

Esto lo resume bastante bien. Si necesita ejecutar máquinas virtuales, entonces se pueden hacer 8 GB (puede ejecutar una máquina virtual cómodamente en 8 GB de RAM). Si tiene un SSD, la diferencia de velocidad entre tener 8 GB y más RAM no será muy obvia a menos que esté ejecutando una gran cantidad de máquinas virtuales y / o intente compilar una base de código enorme. C

Construir

23 de junio de 2010
  • 17 de diciembre de 2018
La diferencia entre una máquina de 8 GB y una máquina de 16 GB es que, en ocasiones, tendrá que tomar decisiones conscientes sobre qué aplicaciones hambrientas de memoria mantener en primer plano.

Las aplicaciones que consumen mucha memoria como XCode y Android Studio funcionarán bien en 8GB. El problema vendría si intentara ejecutar Slack conectado a múltiples grupos, mientras deja Chrome abierto con numerosas pestañas, o tal vez un sistema VM para ejecutar algunos contenedores Docker. Es la concurrencia la que causa los problemas.

Si puede permitirse el salto a 16 GB y planea mantener esta máquina por un tiempo, creo que vale la pena para el futuro. Si el costo adicional es suficiente para hacerte pensar dos veces, olvídalo y haz solo 8GB. Serás feliz de cualquier manera.
Reacciones:Anony-mouse

revmaciano

Oct 20, 2018
USA
  • 17 de diciembre de 2018
jtara dijo: 8GB seguramente no es suficiente en, por ejemplo, una Mac Mini, ya que una buena parte (según el modelo) se usa para la pantalla.

Como dije anteriormente, ejecuto Xcode en mi Mac mini 2014: tiene 4 GB de RAM y no veo ningún problema. Si puedo codificar cómodamente con 4GB, entonces 8GB es suficiente. J

jtara

Mar 23, 2009
  • 30 de diciembre de 2018
kadammanali987 dijo: (La gente a menudo mantiene la aplicación para compilar y jugar juegos hasta ese momento. Esto ralentiza el procesamiento)

O simplemente puede acelerar el ciclo de ejecución de enlace de compilación hasta el punto en que no se necesite más que un buen esfuerzo para levantar el trasero de la silla durante un par de minutos.

Una parte de eso es tener suficiente memoria para que el compilador funcione de manera eficiente, con un mínimo o sin intercambio.

Que USTED PUEDA no significa que DEBE. Tienes que decidir qué tan valioso es tu tiempo.

El momento decisivo para esta ecuación para mí fue hace muchos, muchos años. Un producto llamado Instant-C. Redujo ese ciclo de varios minutos a varios segundos. Me inspiró a reducir un ciclo de compilación-enlace-ejecución para una aplicación que simula y analiza variaciones (de un modelo, originalmente escrito en Fortran) en ensamblajes mecánicos de 1/2 hora a menos de un minuto. (De acuerdo, hice trampa: eliminé el ciclo de compilación-enlace-ejecución ... escribiendo un compilador específico de dominio y un intérprete de código de bytes complementario) 35 años después, sigue siendo la solución predominante para ese dominio.

De todos modos, OP tomó su decisión, creo que fue una sabia.

Por cierto, si todavía estuviera usando mi i7 Mini 2012 para compilaciones, emplearía un Ramdisk. Aproximadamente me reduce a la mitad el tiempo de construcción en el Mini. Lo probé en mi nuevo iMac Pro, pero no tuvo el mismo impacto. Me temo que no pensé en probar el disco ram hasta que obtuve el iMac Pro. MacOS realmente no tiene excelentes soluciones RamDisk. El Mini tiene 16GB. No hay margen para un ramdisk en una máquina con 4GB. (El iMac Pro tiene 64 GB).

vbctv

a
Sep 25, 2013
Cleveland, OH
  • 2 de mayo de 2019
jtara dijo: ¿MacBook Pro usa la memoria del sistema para la pantalla?

Seguramente 8GB no es suficiente en, por ejemplo, una Mac Mini, ya que una buena parte (según el modelo) se usa para la pantalla.

La retroalimentación más importante que se brinda aquí es que en las MacBooks recientes, la memoria está soldada. Está tomando una decisión para los próximos años.

Tengo un mac Mini 2018 conectado a 2 monitores y tengo 8 GB de RAM, nunca veo ningún problema y hago el trabajo de desarrollo de Android Studio y Xcode, además de ejecutar MAMP Pro en segundo plano. El monitor de presión de la memoria nunca aumenta realmente y siempre permanece verde y bajo. Estuve debatiendo una actualización a 16 GB, pero realmente no veo la necesidad a menos que encuentre una oferta excelente en oferta ... C

ChromeCloud

21 de junio de 2009
Italia
  • 2 de mayo de 2019
Encontré que la mayoría de las respuestas hasta ahora eran engañosas.

Cuando trato de usar mi MacBook Air con 4GB de RAM para desarrollar aplicaciones de iOS (estoy hablando de aplicaciones reales, no solo pequeños proyectos de demostración), la experiencia se vuelve bastante frustrante muy rápido. Simplemente abrir Xcode y Safari con 3 o 4 pestañas saturará completamente su RAM (recuerde que el sistema por sí solo toma alrededor de 2GB) y usar el simulador para depurar sus aplicaciones es prácticamente imposible (la computadora se ralentiza hasta el punto de dejar de responder).

Con 8GB estarás bien. Pero no por mucho. Digamos que 8GB es el mínimo para ejecutar cómodamente la suite de desarrollo iOS completa + un par de aplicaciones a un lado si desea tener un editor de texto elegante o algunas herramientas para hacer gráficos vectoriales, por ejemplo.

Entonces, si tuviera que comprar una máquina nueva ahora y conservarla durante los próximos 3 años o más, obtendría al menos 16 GB de RAM.

Otra advertencia: nunca hubiera anticipado esto hace unos años cuando compré mi iMac (que tiene 32 GB de RAM y es mi estación de trabajo principal), pero parece que si desea ejecutar el simulador sin que toda la GUI tartamudee, La VRAM (también conocida como memoria de video) también juega un papel importante en la ecuación.

Para un iMac con retina, una tarjeta de video de 2GB no será suficiente para que todo funcione sin problemas: cada pocos segundos, el búfer se llena (solo experimento esto mientras ejecuto el simulador) y el iMac se congela por una fracción de segundo mientras se vacía y se llena de nuevo. Es muy molesto.

Entonces, mi recomendación para algo en lo que pueda trabajar cómodamente durante los próximos 3 años es: 16 GB de RAM (o más) + 4 GB de VRAM (o más) .
Reacciones:Emanuel Rodriguez METRO

mkelly

29 de noviembre de 2007
  • 3 de mayo de 2019
8 GB es suficiente por hoy, siempre que no esté ejecutando máquinas virtuales. 16 GB es probablemente el punto óptimo si está buscando una computadora portátil que dure entre 4 y 6 años. 32/64 GB es excesivo a menos que esté ejecutando muchas máquinas virtuales simultáneamente o tenga dinero para gastar. METRO

multitudes

Feb 12, 2019
  • 4 de mayo de 2019
Xcode es pesado en la CPU menos en RAM. Acabo de comprar un Mac mini 2018 i7 6 núcleos y cuando compilo iOS y Swift en Xcode, ¡la CPU en el monitor de actividad llega al 90%!
En la misma aplicación, puedo ver que el uso de RAM es inferior a 8 GB sin intercambio. Para más adelante, estoy pensando en actualizar la RAM, pero no tengo prisa por el momento. F

FilipeTeixeira

Mar 10, 2013
  • 6 de mayo de 2019
Debería ser más que suficiente. A menudo, solo es un problema cuando se trabaja con lenguajes como R o así. Debido a que esos lenguajes a menudo tienden a cargar todo en la memoria, lo que significa que con conjuntos de datos grandes, cuanto más RAM tenga, mejor funcionará.