¿Podría dar ejemplos de programas que requieren más RAM y programas que requieren más potencia de CPU?

Más RAM:

para (;;) malloc (1000000000000000000000000000); // felicidades, te has quedado sin RAM

Más CPU:

para (;;) {fork (); } // una bomba tenedor! ¡correr!

Los navegadores pueden usar mucha memoria si acude a “aplicaciones web enriquecidas”. Si ejecuta ese código anterior desde una consola de JavaScript, tiene un programa que usa mucha CPU.

Los editores como Eclipse y Aptana Studio usan mucha memoria. Por otro lado, el Bloc de notas (el que viene con Windows) usa una cantidad increíblemente pequeña de memoria.

Los emuladores, como Bochs o QEMU, usan mucha CPU, ya que estás convirtiendo instrucciones de una forma a otra.

Google Chrome usa menos memoria que Firefox e Internet Explorer, pero Firefox usa menos CPU.

¡Espero que esto ayude!

EDITAR: Peter Ho dijo que “for (;;)” ocupa solo un núcleo. Sugirió una bomba tenedor. Editado para reflejar su sugerencia. Gracias Peter!

El uso de la CPU requiere RAM, y a menudo mucha.

Es muy relativo, lo que constituye una gran cantidad de RAM, pero un editor de texto (o procesador de textos) generalmente mantiene todo el texto en RAM, aproximadamente 1 a 2 bytes en promedio por letra.

Si está hablando de un procesador de texto GUI, como Microsoft Word, entonces sus requisitos de RAM explotan.

Cuando lo piensa, él o un editor, no requiere CPU hasta que ingrese una letra. Luego obtienes una cantidad relativamente pequeña de trabajo de CPU para almacenarlo en la memoria y reorganizar los píxeles de la pantalla.

Hoy en día, tenemos grandes archivos de video, es posible que ni siquiera quepan en la memoria. Pero ellos no necesitan hacerlo. Los transmites a través de la memoria. Necesita al menos un fotograma (tal vez un poco más …) en la memoria a la vez. Necesita una gran cantidad de CPU (o GPU y CPU novadays de tiempo para decodificar; es aún peor para la inversa, codificar).

Los navegadores, al menos todos los que he usado (excepto en dispositivos móviles, donde el comportamiento es diferente), ocupan mucha RAM. Realmente no necesitan … eligen atender todas las pestañas a la vez, y con ello viene un alto uso de RAM y CPU asociada (al menos para las pestañas que tienen JavaScript).

No puede clasificar fácilmente el navegador como más RAM o CPU pesada, ya que hacen cosas diferentes, por ejemplo, transmisión de videos, que tiene características diferentes del resto de lo que hacen los navegadores.

Un ejemplo de CPU extrema que usa un programa es calcular el conjunto de Mandelbrot. Es pura computación, excepto almacenar el resultado en una imagen (el framebuffer), y podría simplemente tirar el resultado y no mostrarlo (pero cuál sería el punto entonces …).

Photoshop solía considerarse RAM hambriento (pero no según los estándares modernos), pero ya nada (para usuarios comunes) realmente tiene RAM o CPU, excepto los navegadores (no es necesario), o los gráficos 3D [juegos de lectura].

Un “hombre de salario” japonés: mucha RAM, sin CPU. Un ingeniero perezoso francés (yo …): cero RAM, mucha CPU (quemando …) :))))

Con todo, al final del día, como de costumbre, lo mejor es un buen equilibrio en el medio: un software o un cerebro los necesita a los dos, y un “programa” inteligente se carga en la RAM rápida “lista para funcionar” antes -calculadas instrucciones a prueba de campo, y la CPU o el cerebro adaptan el comportamiento básico “debería hacer” al contexto específico no planificado

Significa: si el contexto es usual, conocido, entonces las instrucciones de RAM serían suficientes (= cerebro inconsciente: cómo caminas, brisa, etc.). Pero el contexto “fuera de lo normal” (nuevo campo, mejora del contexto “normal”, etc.) entonces la CPU debe entender lo que está sucediendo, adaptar o inventar un nuevo conjunto de comportamientos y cargarlo en la memoria RAM / cerebro.

Supongo que eso es lo que debería hacer un software inteligente, AI, tipo inteligente. Hacer lo contrario es simplemente un software tonto que te obliga a adaptarte a su comportamiento preestablecido (y bueno, vivir aquí en Tokio, eso es lo que siento cuando solo pido una estúpida SIM para teléfono móvil aquí …: el cliente tiene que adaptarse a los procesos preestablecidos, ¡totalmente no flexibles!; D), y usar la CPU solo significa que no aprendes de lo que experimentas, y vuelves a pensar en lo más básico cada vez que solo haces clic en un botón / das otro paso.

Pero, oye, ¿por qué te molestas? Ahora está en el siglo XXI y tiene acceso a CPU y RAM ilimitadas: computación en la nube y almacenamiento (descubra Erlang / Elixir, su BEAM VM y la cadena de bloques Ethereum Storj: almacenamiento en la nube descentralizado, etc. 😉)

Los juegos y los navegadores son obvios.

Los juegos de sandbox (piense en GTA V, Fallout 4, etc.) hacen malabarismos con toneladas de datos entre disco, CPU, RAM, PCI, GPU y GPU RAM, todo el tiempo.

Renderizar una sola página requiere muchos recursos del sistema, y ​​generalmente tengo 15-20 abiertos.

Espere también que la edición de video e imagen use mucha RAM. Cuando abre, por ejemplo, una imagen se convierte en una representación sin comprimir para que pueda editarse. Multiplique eso con todas las imágenes que están abiertas al mismo tiempo.

Algunos ejemplos famosos:

  • Redis, un servidor de caché en memoria, almacena lo que quieras y los devuelve cuando sea necesario, requiere tanta memoria como para guardar todo lo que guardaste, por lo que podría requerir mucha memoria, pero su función es bastante simple y no No necesita demasiados esfuerzos de CPU.
  • Super-PI, el programa calcula PI hasta prácticamente cualquier precisión, no usa demasiada memoria pero quema su CPU, puede ver su efecto tocando la CPU mientras se está ejecutando.