
He creado una aplicación (OpenGL/SDL) que utiliza cantidades de memoria muy diferentes en diferentes sistemas:
LGA2011/HD6950/16GbRam/W8PRO - 185Mb
LGA1155/HD7850/16GbRam/W7PRO - 180Mb
LGA1333/Quadro2000/W7PRO - 110Mb <-------------- ¿Qué pasa con este?
2011MBA - 300+Mb (creo que esto se debe a que la igpu comparte RAM)
¿Cómo puedo determinar el motivo de esto?
Respuesta1
En cuanto a tu pregunta, esto es lo que sé. Cuando observa la memoria que se está utilizando, podría mostrar diferentes tipos. Algunas computadoras tomarán parte de la memoria y la moverán a SWAP si usan su RAM. También podría estar usando memoria virtual, que ocupa menos espacio, lo que hace que parezca que su aplicación está usando menos.
Si se ejecutan en diferentes sistemas operativos o versiones, eso podría contribuir. Por ejemplo, es posible que Windows XP no maneje la memoria de la misma manera que lo hace 7, lo que podría alterar levemente la cantidad de memoria real que usa su aplicación.
También pueden contribuir ligeros cambios en las tarjetas gráficas u otras piezas de hardware, al exigir memoria de otra aplicación, pero eso no suele ocurrir en Windows, más aún en las basadas en Unix.
En cuanto a Mac, tienes razón. OS X almacena la memoria de manera bastante diferente y utilizará toda la memoria RAM si puede; comenzará a reducir la cantidad cuando la memoria se agote. Pero la GPU que comparte RAM es lo que hace que parezca tan alto en ese caso.
No soy el que más sabe en este tema, ya que también soy ingeniero de software, tal vez un ingeniero eléctrico (o alguien con conocimientos similares) podría entrar en mayores detalles.