Нет "среднего" автомата. Существует целый ряд все еще используемых компьютеров, в том числе те, которые работают под управлением DOS / Win3.1 / Win9x и имеют менее 64 МБ установленной оперативной памяти.
Если вы не устанавливаете минимальные требования к оборудованию для своего приложения, по крайней мере рассмотрите самую старую ОС, которую вы планируете поддерживать, и используйте официальные минимальные требования к оборудованию этой ОС, чтобы получить оценку снизу.
Как правило, если ваше приложение потребляет значительный объем оперативной памяти, вы можете разрешить пользователю настраивать верхние границы механизма управления памятью приложения.
Тем не менее, если вы решите динамически управлять верхними границами на основе данных в реальном времени, вы можете сделать довольно много вещей.
Если вы разрабатываете приложение для Windows, вы можете использовать WMI для получения общего объема памяти системы и основывать свои ограничения на этом значении (скажем, использовать до 5% от общей памяти) ,
В .NET, если ваши структуры данных являются сложными, и вам трудно оценить объем используемой памяти, вы можете запросить сборщик мусора об объеме выделенной памяти, используя GC.GetTotalMemory(false)
, или использовать System.Diagnostics.Process
объект.