Java má pochopitelně vyšší nároky na paměť něž program napsaný v C/C++, ale to je dáno její "architekturou". A .NET je na tom úplně stejně (obojí je pro VM, takže to musí mít vyšší nároky). Ale skutečně by mě zajímalo, kde čerpáte informace o té rozežranosti. Argument, že: "to se přece ví" ... tím byste se vážně řídit neměl. Jeden čas jsme provozovali 10 webových aplikacích na AS Glassfish 3, na serveru běžela databáze Postgres 8.3 a 5 aplikací (brány napojené na mobilní operátory) napsaných v Javě a server měl pouze 4 GB RAM a běželo to vše úplně hladce.
Ohledně GC. GC si alokuje pamět pokud ji systém nepotřebuje (ono k čemu byste v PC měl paměť, když by ji nikdo nevyužíval). Pokud Vám takové chování vadí a chcete mít v PC paměť nevyužitou, je skutečně velice primitivní přidělit maximální velikost paměti, kterou může aplikace použít.
512 MB RAM je pochopitelně málo. A je to málo ať pro Javu, .NET, Mono, PHP.
Mono je na zdroje náročnější než .NET jednoduše pro to, že VM není tak vyladěný jako VM od MS. Mono se nedá skutečně s .NET srovnávat. Nevěřím, že někdy bude tak "dobré" jako .NET. Doporučuji se podívat sem:
http://www.mono-project.com/Compatibility.
Jak již bylo zmíněno. Pokud to máte na hraní, vyberte si něco "zajímavého". Grails, Scala, Erlang. Pokud to máte pro výdělek, pak si dokupte RAM a naučte se Javu nebo si stáhněte MS Visual Studio a naučte se .NET (ne Mono).