為什麼應用程式在不同計算機上使用不同數量的內存

為什麼應用程式在不同計算機上使用不同數量的內存

我建立了一個應用程式(OpenGL/SDL),它在不同的系統上使用非常不同的記憶體量:

LGA2011/HD6950/16GbRam/W8PRO - 185Mb

LGA1155/HD7850/16GbRam/W7PRO - 180Mb

LGA1333/Quadro2000/W7PRO - 110Mb <---------------- 這個是怎麼回事?

2011MBA - 300+Mb(我認為這是由於 igpu 共享 RAM)

我怎麼能確定出現這種情況的原因?

答案1

至於你的問題,我所知道的情況是這樣的。當您查看正在使用的記憶體時,它可能會顯示不同的類型。如果使用 RAM,有些電腦會佔用一些記憶體並將其移至交換區。它還可以使用虛擬內存,它佔用的空間更少,從而使您的應用程式看起來使用的空間更少。

如果它們運行在不同的作業系統或版本上,那麼這可能會有所幫助。例如,Windows XP 可能不像 7 那樣處理內存,這可能會稍微改變您的應用程式使用的實際內存量。

顯示卡或其他硬體的輕微變化也可能導致其他應用程式佔用內存,但這通常不會發生在 Windows 上,在基於 Unix 的系統上更是如此。

至於Mac,你是對的。 OS X 儲存內存的方式完全不同,如果可以的話,它會使用盡可能多的 RAM 內存,當內存不足時,它會開始減少內存量。但 GPU 共享 RAM 才是讓它看起來如此高的原因。

我不是這方面知識最豐富的人,因為我也是軟體工程師,也許電氣工程師(或有類似知識的人)可以詳細介紹。

相關內容