Warum sollte eine Anwendung auf verschiedenen Computern unterschiedliche Speichermengen verwenden?

Warum sollte eine Anwendung auf verschiedenen Computern unterschiedliche Speichermengen verwenden?

Ich habe eine Anwendung (OpenGL/SDL) erstellt, die auf verschiedenen Systemen sehr unterschiedliche Speichermengen verwendet:

LGA2011/HD6950/16GbRam/W8PRO - 185Mb

LGA1155/HD7850/16GbRam/W7PRO - 180Mb

LGA1333/Quadro2000/W7PRO – 110 MB <-------------- Was ist mit diesem hier los?

2011MBA – 300+ MB (ich glaube, das liegt daran, dass die Igpu den RAM gemeinsam nutzt)

Wie kann ich die Ursache hierfür ermitteln?

Antwort1

Zu Ihrer Frage weiß ich Folgendes: Wenn Sie sich den verwendeten Speicher ansehen, können verschiedene Arten angezeigt werden. Einige Computer nehmen einen Teil des Speichers und verschieben ihn in den SWAP-Speicher, wenn sie Ihren RAM verwenden. Es könnte auch virtueller Speicher verwendet werden, der weniger Platz beansprucht, sodass es so aussieht, als würde Ihre App weniger Speicher verwenden.

Wenn sie auf unterschiedlichen Betriebssystemen oder Versionen laufen, kann das dazu beitragen. Beispielsweise kann Windows XP den Speicher anders handhaben als Windows 7, was die tatsächliche Speichermenge, die Ihre App nutzt, leicht verändern kann.

Auch geringfügige Änderungen an Grafikkarten oder anderen Hardwareteilen können dazu beitragen, indem sie Speicher von einer anderen Anwendung beanspruchen. Dies geschieht unter Windows jedoch normalerweise nicht und eher auf Unix-basierten Systemen.

Was den Mac betrifft, haben Sie Recht. OS X speichert Speicher ganz anders und nutzt den gesamten RAM-Speicher, wenn möglich. Wenn der Speicher knapp wird, wird er reduziert. Aber der GPU-Sharing-RAM ist der Grund, warum er bei diesem so hoch erscheint.

Da ich auch Softwareentwickler bin, kenne ich mich auf diesem Gebiet nicht so gut aus. Vielleicht könnte ein Elektroingenieur (oder jemand mit ähnlichen Kenntnissen) näher darauf eingehen.

verwandte Informationen