Cómo saben los requisitos de los programas?
Los requisitos de consumo de RAM se pueden obtener realizando diversos tests (del mínimo y los picos de consumo) con aplicaciones dedicadas a analizar las operaciones de memoria de "X" aplicación, a este tipo de técnica se le denomina
Profilling, existe el profilling de memoria, y el profilling de rendimiento (que nada tiene que ver). A este tipo de herramientas se les da utilidad para depurar aplicaciones en busca de conflictos de consumo excesivo de RAM (o lento rendimiento de la aplicación).
Por nombrar algunas herramientas, para la plataforma .Net puedes recurrir a
Telerik JustTrace, y
ANTS Memory Profiler +
ANTS Performance Profiler entre otros, por orden de preferencia personal.
Para un análisis genérico puedes recurrir a la herramienta
VMMap, no conozco más ya que no desarrollo aplicaciones en otros lenguajes.
PD: Eso de probar la app en varios PCs para sacar estadísticas es una auténtica bobada, eso lo hacen las grandes empresas (a lo Microsoft) en busca de bugs, beta-testers, y quizás aprovechen para registrar estadísticas de consumo RAM y rendimiento sí, pero el programador "normal", el autónomo cómo tu y cómo yo, prueba la app en una máquina virtual y allí se realizan los diversos análisis, ya que puedes condicionar el entorno de la VM para "quitarle" o "darle" requisitos cómo por ejemplo concederle más memoria virtual o instalar unas runtimes específicas para testear la app, y además puedes utilizar varios sistemas operativos (varias VM) para elaborar informes de resultados con más seguridad.
Saludos