Почему приложение использует разный объем памяти на разных компьютерах?

Почему приложение использует разный объем памяти на разных компьютерах?

Я создал приложение (OpenGL/SDL), которое использует очень разные объемы памяти на разных системах:

LGA2011/HD6950/16GbRam/W8PRO - 185Mb

LGA1155/HD7850/16GbRam/W7PRO - 180Mb

LGA1333/Quadro2000/W7PRO - 110 Мб <-------------- Что с этим?

2011MBA - 300+Мб (я думаю, это из-за совместного использования ОЗУ igpu)

Как определить причину этого?

решение1

Что касается вашего вопроса, вот что я знаю. Когда вы смотрите на используемую память, она может показывать разные виды. Некоторые компьютеры берут часть памяти и перемещают ее в SWAP вместо использования вашей RAM. Она также может использовать виртуальную память, которая занимает меньше места, тем самым создавая видимость того, что ваше приложение использует меньше.

Если они работают на разных ОС или версиях, то это может повлиять. Например, Windows XP может обрабатывать память не так, как 7, что может немного изменить объем фактической памяти, используемой вашим приложением.

Небольшие изменения в графических картах или других компонентах оборудования также могут способствовать возникновению проблемы, требуя памяти от другого приложения, но в Windows это обычно не происходит, тем более в ОС Unix.

Что касается Mac, вы правы. OS X хранит память совсем по-другому и использует всю оперативную память, если может, она начнет уменьшать объем, когда памяти станет мало. Но именно разделение памяти графическим процессором заставляет ее казаться такой высокой.

Я не самый сведущий в этой теме, так как я еще и инженер-программист. Возможно, инженер-электрик (или кто-то с аналогичными знаниями) мог бы дать более подробную информацию.

Связанный контент