Bilgisayar 8GB RAM'imin 4'ten fazlasını kullanmıyor…? (64 bit bilgisayar)


17

Son zamanlarda, bilgisayarımı geleceğe hazırlamak için orijinal 4GB belleğimin üstüne ekledim. Toplam hafızayı 8GB'a getirdim ve hızda gözle görülür bir değişiklik yok - gerektiğinde bile. Görev Yöneticisi'ne bakmaya gittim ve her biri 20 sekmeli Chrome ve Firefox açık olsa bile bilgisayarımın 4GB'ın üzerinde bellek kullanılmadığını gördüm.

Araştırdıktan sonra, herkesin önerdiği her şey, ne kadar belleğin kullanılabilir olduğunu kontrol etmekti. Garip bir şekilde, 8GB belleğim olduğunu ve 7.74GB kullanılabilir olduğunu söylüyor.

HP Pavilion g7-1075dx için teknik özellikleri burada bulabilirsiniz. AMD Phenom II ile Windows 7 Home Premium 64 bit içeren bir dizüstü bilgisayardır.

Asıl sorum şu: 64-bit bilgisayarımda, bilgisayarım 7'den fazla kullanılabilir olsa bile neden 4GB'tan fazla bellek kullanmıyor?

EDIT: yardımcı olursa, Kaynak Monitörü diğer tüm RAM "Bekleme" olarak tanımlar


1
4GB'den fazla kullanmadığını nasıl görebilirsiniz? Belleği test etmek veya kullanmak için diğer programlarımı denediniz mi? Chrome ve Firefox akıllıca bir talep gerektirmez ...
Mokubai

9
Şimdiye kadar hiç kimse daha fazla RAM'in bilgisayarı daha hızlı hale getirmediğini söylemedi . Dikkat çekici bir hız artışı göreceğiniz tek zaman, iş yükünüzün Windows'un sürekli olarak diske sayfa atması gereken çok RAM tüketmesi - bu durumda daha fazla RAM eklemek kesinlikle işleri hızlandırabilir. Ancak milletlerin% 98'i 4GB'tan fazla RAM gerektiren şeyleri yapmaz ve sonuç olarak, tüm bu ekstra RAM'e sahip olmak için hiçbir somut fayda elde etmez.
misha256

1
@mattycfp Windows RAM kullanımını sınırlandırabileceğimi bildiğim başka bir olasılık daha var. Sizin, bir başkasının veya bazı yazılımların RAM kullanımına bir LIMIT koyması mümkün mü? Bu makaleye bir göz atın ve talimatları izleyin: helpdeskgeek.com/windows-7/…
misha256

1
Firefox'un tüm sekmelerde / işlemlerde 2 GB sınırı vardır, krom da olabilir. Bu, işlem başına normal sınırlamaya ek olarak yapılır.
JamesRyan

6
Firefox ve Chrome'un her biri 20 sekmeyle açık olması kesinlikle yeterli değildir. 157 sekmeli Firefox'um var, 1 GB RAM bile tüketmiyor. Oyunları çalıştırırken kontrol edin. Jamie Hanrahan'ın cevabı çok iyi ve detaylı. Daha fazla bilgi için Mark Russinovich'in Windows sınırlarını zorluyor. bağlantısını tıklayın .
sbecker

Yanıtlar:


27

yardımcı olursa Kaynak Monitörü diğer tüm RAM'leri "Bekleme" olarak tanımlar

"Bekleme" RAM olan kullanımda. Sayfa önbelleği olarak kullanılır (tüm işlem çalışma kümelerinden son zamanlarda kaybolan sayfaları tutar; yani bunlara yönelik sayfa hataları diske gitmeden çözülebilir) ve ayrıca SuperFetch tarafından proaktif dosya önbelleği için kullanılır.

"Kullanılabilir" olarak kabul edilir, çünkü Bekleme sayfalarının başka bir kullanıma atanmadan önce diske yazılması gerekmez. Bir süreç bir sayfa hatası çarptığında gibi geliyor diskten okuma gerektiren, yeni fiziksel sayfa (lar) bu işleme ayrılan edilmelidir ve gerekirse bu Bekleme listesinden alınabilir. (Bu, bu amaç için sayfa bulmak için ilk seçenek değildir, bu ücretsiz ve ardından sıfır sayfa listesidir.)

Başka bir deyişle sisteminiz olması gerektiği gibi çalışıyor.

Windows Internals'dakitestlimit deneylerde kullanılan araçlardan biri olan komut satırı aracıyla sisteminizi "kullanımda" durumuna kolayca daha fazla RAM almaya zorlayabilirsiniz . Düzenli sistem araçlarının bir parçası değildir, ancak bunlarla ilişkilidir; bulmak burada sysinternals yerinde. Karşıdan yükleme iki sürüm içeren bir zip dosyasıdır, testlimit.exe ve testlimit64.exe. Her ikisi de büyük adrese bağlı olduğundan, 32-bit sürümü / 3GB ile önyüklenmiş 32-bit bir makinede en fazla 3 GiB, 64-bit bir makinede en fazla 4 GiB tahsis edebilecek.

c:\> testlimit -? yardım eder.

c:\> testlimit -d 4 -c 512her biri 4 MiB'lik 512 ayırmada 2 GiB işlem özel sanal adres alanı ayırmaya çalışacaktır. Bu, 64 bit makinede iyi çalışmalıdır. 32 bit makinede değil / 3 GB ile önyükleme (çoğu değildir) o küçük bir hata daha erken b / c zaten (program gibi kendisi tüm DLL, vb) sürecinde malzeme birkaç MiB, orada öylesine programın tahsis etmesi için tam bir 2 GiB mevcut değildir.

Her iki durumda da "kullanılabilir" RAM'de bir azalma ve "Kullanımda" RAM'de bir artış olacak, ancak mutlaka 2 GiB değerinde olmayacaktır , çünkü işletim sisteminin 2 GiB'nin tamamını özel çalışma setinde bırakacağına dair bir garanti yoktur. Kısa vadede bunu yapsa bile, işletim sistemi "hm, gerçekten onunla hiçbir şey yapmıyorsunuz, diğer süreçlerin daha fazlasına ihtiyacı var" ve sayfalar çıkarmaya karar verirken süreç çalışma kümesinin daha sonra azaldığını görebilirsiniz.

Tahsis "parçalarının" boyutunu çok fazla artırın, buna göre parça sayısını azaltın ve her tahsisin neredeyse bitişik olması gerektiğinden muhtemelen daha erken başarısız olacaktır. 4 GiB adres alanında yedi 512 MiB parçası bulmaya çalıştığınızda büyük olasılıkla başarısız olursunuz.

D (irty) yerine l (eak) seçeneğini kullanırsanız, program sanal alanı ayırır, ancak hiçbir zaman buna başvurmaz. Bu, "kullanılabilir" RAM'de kayda değer bir azalmaya neden olmaz .

(D (irty) seçeneği, adını x86 / x64 sayfa tablosu girişindeki "kirli sayfa bitinden" alır; bu, karşılık gelen sanal sayfaya "değiştir" tarzı bir işlenenle erişildiğinde ayarlanır, yani sayfa içeriği Bu, Windows'un işlem çalışma kümesinden çıkarılması gerektiğinde, içeriğin sayfanın başka bir şey için kullanılabilmesi için bir yere kaydedilmesi gerektiğinin göstergesidir. "Kirli" bit kümesine sahip sayfalar tahliye işleminden hemen sonra "değiştirilmiş sayfa listesi"; oradan Windows bunları ilgili destek mağazalarına yazar.)

Bu testlerin yukarıda açıklandığı gibi çalışması için yeterli "kesinleştirilmesi" gerekir (bu seçenek kayda değer miktarda RAM kullanmasa bile) (l (eak) seçeneği için bile). Özellikle, "taahhüt limitiniz" testinize başlamadan önce "kesinleştirme ücretinden" en az 2 GiB (veya ayırdığınız kadar) olmalıdır. Bunun sadece d (irty) değil l (eak) seçeneğini kullansanız bile geçerli olduğuna dikkat edin. Bu sınıra girerseniz, "sistem belleği yetersiz" pop-up'larını veya benzerlerini görürsünüz. Tedavi elbette daha fazla RAM eklemek ve / veya sayfa dosyası ayarlarınızı artırmaktır.


16

Windows aslında RAM kullanımını sınırlayacak şekilde yapılandırılabilir. Bu ayarı dizüstü bilgisayarınızda nasıl veya kimin yapılandırdığını bilmiyorum, ancak şunları kontrol etmelisiniz:

Maks Ram Ayarı

Bu makalede daha fazla ayrıntı var, ancak yukarıdaki iletişim kutusuna ulaşmak kolaydır:

  1. Başlat Simgesini tıklayın ve msconfig.exearama kutusuna yazın

    msconfig nasıl başlatılır

  2. Msconfig.exe dosyasını başlatın, Bootsekmeye tıklayın, ardından Advanced Options...düğmesine tıklayın ve içindesiniz:

    msconfig önyükleme ayarları iletişim kutusu

  3. Ya mantıklı bir değer girin, örneğin 8GB RAM için 8192 veyaMaximum memory Windows'un sahip olduğunuz tüm RAM'i kullanmasını sağlayacak onay kutusunun işaretini kaldırın . Kesinlikle hem seçenekleri denemek istiyorum.

    maksimum ram ayarı


@ misha256 - Başlangıçta çok az içeriğe sahip bir cevapla derinden şaşkın ve evet, eğer biri cevaplardan birini gönderirse, cevaplar hakkında iki kez düşünemezdim (belki de onların yardımseverliğini biraz daha sert yargılamak dışında).
Ramhound

@ misha256 bu sorun olsaydı OP kullanımda yaklaşık 4 GB ve başka bir 4 GB bekleme göremezdi. Bu seçenek tarafından hariç tutulan RAM "bekleme" modunda görünmez; OP ayrıca "8GB bellek ve 7.74GB kullanılabilir" ifadesini görmezdi. (örneğin video kartı nedeniyle 256 MB "kullanılabilir değil" bekleniyor).
Jamie Hanrahan

10

Bilgisayarın fiziksel RAM'inizle tam olarak ne yaptığını görmek için SysInternals RAMMap kullanabilirsiniz . Görev Yöneticisi veya İşlem Gezgini gibi diğer araçlar esas olarak sanal belleğe odaklanır ve bu durum için en iyi araç değildir.

"Sayıyı kullan" sekmesinde, çok fazla uygulama açmadıkça büyük bölümlerin kullanılmadığını görebilirsiniz.

SysInternals RAM Haritası

Bu, PC'nizin bu durumda kalacağı anlamına gelmez. Sadece birkaç program açın ve bellek kullanılacaktır.


"Sanal RAM" terimi kullanılmamalıdır. Ayrıca, bu diğer araçların ağırlıklı olarak sanal belleğe odaklandığını söyleyemem - fiziksel bellek kullanımını gösteren çok sayıda sayacı var.
Jamie Hanrahan

5

Konuyla ilgili çok iyi bir makaleden alıntı :

Daha fazla bellek aslında [bilgisayarın] işlem hızını artırmaz. Bunu ancak daha hızlı bir CPU yapabilir.

Benim tecrübelerime göre, bu kesinlikle doğru. Aynı anda çok sayıda program çalıştırmıyorsanız ve bu programların önemli RAM gereksinimleri yoksa, 4 GB'den fazla RAM'e sahip olmanın neredeyse hiçbir gerçek dünya avantajını göremezsiniz.

İnsanlar 4GB'ın çok fazla RAM olduğunu fark etmiyorlar. Windows'un bundan daha fazlasını kullanması çaba gerektirir. Çok sayıda farklı uygulama açmanız gerekecek ve bu uygulamalarda bazı büyük dosyalar açacaksınız. Birkaç YouTube videosu sekmesine atın; 4GB'tan fazla kullanımı görmeye başlayabilirsiniz.


2
@mattycfp 4 GB'lık makinemde Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (bilinen bir RAM domuz), Photoshop, Media Player, VLC, MPC-HC, artı diğer bazı rastgele uygulamalar, ve ben şeyler yapmak, belge yüklemek, video oynatmak, her şey arasında geçiş yapıyorum ve gerçek RAM kullanımım 2.2GB ve makine her zamanki gibi HIZLI. Bakın, 4GB tüm bu işleri kolaylaştırır ;-)
misha256

3
@mattycfp 120 FF pencereleri? CPU'nuzu, özellikle bir dizüstü bilgisayarda RAM'den daha fazla çıkartabilirsiniz. Ayrıca FF'nin 32-bit bir uygulama olduğunu ve birden fazla FF penceresinin aslında tek bir 32-bit işlemi PAYLAŞMasını unutmayın, bu nedenle FF aslında oldukça sınırlıdır, toplam 8GB'ınızın yalnızca 2GB'ını kullanabilir. Bu nedenle , Windows'un sadece 120 Windows FF'sini değil, RAM'inizi nasıl kullandığını test etmek için aynı anda birçok farklı uygulama çalıştırmanız gerekir .
misha256

4
@ misha256 Sen edecektir Sistem sürekli hafıza takas eğer performans kazançlarını bakın. Bellek basıncı arttıkça sayfalama artar ve sistem yavaşlar. Bu bellek ekleyerek daha hızlı gitmesini sağlayacak, ama o kadar değil edecektir katılan yazılım kendi sistem gereksinimlerinde çağrı belirli bir miktar varsayar, özellikle yavaşlatan sizi korumak. Bu makalede disk belleği hakkında fazla bir şey söz konusu görünmüyordu. Çağrı sizi yavaşlatan şeydir.
phyrfox

4
@ misha256 IRC, Spotify, Notepad ++, Chrome ve Görev Yöneticisi'ni açtım ve toplam 4GB'mdan 3.02GB kullanıyorum :( 3 VS2013 örneğini açıyorum (işte yapmaya eğilimliyim) ve bu beni en üst düzeye çıkarıyor. 4GB sınırına ulaşmayı düşündüğünüzden biraz daha kolay, ancak pratikte güçlü bir kullanıcı gerektirir
Thebluefish

1
@ misha256 Düzeltme: FF, büyük adres farkındadır ve 32 bit işlemde 3 GB'a kadar adresleyebilir. FF'nin 64 bit sürümü (şu anda Windows için beta sürümündedir) açıkçası çok daha fazlasını ele alabilir. Ben de 4GB RAM fazla "kullanmak" (yerleşik özel çalışma seti) zor olduğunu söylerken biraz fazla genelleme hissediyorum; bu gerçekten ne yaptığınıza ve ne kadar açık kaldığınıza bağlıdır. Temel kullanımım bunu zaten aşıyor.
Bob

5

Windows, bellek belleği gibi bazı akıllıca şeyler yapar. Yaptığınız görevlerin çoğunu gereksiz görüyor olabilir ve bir sürü dosyayı sayfa dosyasına dökmeye karar vererek, tüm RAM'inizi kullanmaktan kaçınmak için yaptığı gibi görünebilir. Bu teoriyi sayfalamayı devre dışı bırakarak test edebilirsiniz, ancak bu kalıcı olarak yapılandırmanız gereken bir şey değildir. İnternette bunu yapmak için birçok öğretici var. Yaptığı şeylerden biri (24GB ve 64GB makinelerimde bile), yaklaşık% 50,% 80 ve% 90 tüketime ulaştığında çağrı kurallarını çok daha sıkı hale getirmektir (bu rakamlar yaklaşıktır). Bu aşamaların her birinde bir sürü şey sayfa dosyasına dökülür fark ettim.

Yapılacak eğlenceli bir şey şöyle olabilir:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

Bu bir C kodu. GCC veya bir derleyici alın, kendinizi bir exe yapın ve bellek tüketiminizin arttığını izleyin. 2 GB'den fazla bellek tüketmek istiyorsanız, 64 bit işlem olarak derlemeniz ve çalıştırmanız gerekir. Eğer bu tür bir şeyin içindeyseniz ilginç bir deney olabilir, başka bir şey yoksa :)

Düzenleme: Sadece programın bununla ölmeyeceğini not etmek istedim. Diğer kod işe yarayacağından emin olmadığım için önceki koddan düzenledim (bellek sayfalanmış, hiçbir bellek tüketilmiyor, lol). Yeni kod bir satır içerir int gb = 2; // memory to consume in GB- 2'yi değiştirmek, programın tüketmesi gereken bellek miktarını ayarlayacaktır, böylece istediğiniz kadar kullanmak üzere ayarlayabilirsiniz. Sisteminizin sahip olduğu bir şey üzerine ayarlamak muhtemelen çökmesine neden olur (test edilmemiştir, bu nedenle dikkatli kullanın)


Keşke derleyebilseydim, ama İnternetim denediğim her indirmeyi
bozmaya

5
@mattycfp Yani işletim sisteminizde> 4GB RAM kullanamazsınız ve tüm indirmeleriniz bozulmaya devam eder mi? (A) Sabit sürücüyü SİLME ve yeni bir işletim sistemi kurulumu yapma veya (b) dizüstü bilgisayarı seleye atma ve uygun bir tane alma zamanı .
misha256

1
Sunulan program, her seferinde bir sayfa olmak üzere 2 GB sanal belleği ayırır ve "dokunur", bu da her sayfanın ayrıldıktan hemen sonra RAM'e hata vermesine neden olur. Ancak bu, Windows'un hepsini aynı anda RAM'de tutacağını garanti etmez. Program vm öğelerinin tümüne art arda erişmediği için, ilk olarak ayrılan sayfalar sayfalandırılabilir. Windows Internals aracı "testlimit", seçenek -d ile bu programla aynı etkiyi elde edebilirsiniz.
Jamie Hanrahan

@mattycfp bu durumda, RAM'in hatalı olmadığını görmek isteyebilirsiniz ... İndirdiğiniz her dosya bir şekilde bozulur mu? Bazen uyumsuz çubuklarla ilgili sorunlar da vardır, bu nedenle anakart kılavuzunu kontrol etmeli ve RAM'inizin bu talimatlara göre düzenlendiğini doğrulamalısınız (yuvalar 1 ve 2 veya 1-4 olarak numaralandırılacaktır ve genellikle 1 ve 3 2 ve 4 gibi RAM'in aynı "tipi" veya "markası ve modeli"). & Evet, bu program 2GB kullanmalıdır, bu satırı değiştirerek düzenlenebilir int gb = 2; // memory to consume in GB- sadece 2'yi değiştirin.
XtrmJosh

Neden tek kullanımlık imzasız uzun süre yayınladığında gb'yi int türünde ilan ettiniz? Ayrıca i aynı şekilde tedavi ediyoruz ve int ve döküm-imzasız arasındaki karışık bir karşılaştırma yapıyor. Öyleyse sadece imzasız kalıyorum.
JDługosz

1

Bilgisayarın ne kadar hızlı çalıştığını test etmek için 32 bit bir program mı kullanıyorsunuz? Öyleyse, 32 bit adreslerin daha fazla RAM'iniz olsa bile RAM'in yalnızca 4 GB'ını gösterebileceğini unutmayın. Testi 64 bit bir program kullanarak tekrarlamanız ve hızını 4 GB RAM mevcutken ve 8 GB RAM mevcutken tekrar kontrol etmeniz gerekir. Ayrıca, daha hızlı çalışmak için 4 GB'den fazla bellek kullanabilen 64 bit bir program olması gerekir - hepsinin yapamayacağı. Bir programın 32 bit olup olmadığını söylemek için programı başlatın ve çalışır durumda bırakın, ardından Windows Görev Yöneticisi'ni başlatın, İşlemler'e tıklayın ve ilgilendiğiniz programı bulana kadar aşağı kaydırın. Görüntü Adı sütunundaki programın adını bir boşluk izliyorsa, * 32 ise 32 bitlik bir programdır.


birden fazla 32 bit program çalıştırırsanız, toplam RAM kullanımları kolayca 8 GB'a ulaşabilir.
Jamie Hanrahan

0

Get süreç kaşif Sysinternals'den (ProceXP) . Bir kaynak grafiği vardır ve işlem başına bellek kullanımını gösterebilir, stok işlem görünümünden çok daha iyi.

Sen sadece hepsini kullanmadığınız olmadığını görmek için, sanal spqce kullanımı vs fiziksel ram kullanımı bakabilirsiniz ya daha fazla ihtiyaç gibi görünüyor ancak fiziksel kullanımını sınırlandırıyor.

Çoğu sıradan program , talebi düşük tutacak farklı bir çalışma kümesi boyutu kullanır. Bir program belleğinin bir ton ayırır Eğer gerçekten değil kullanılarak aynı anda her şeyi ...

Windows sayfaları programınızdan agresif bir şekilde kullanılabilir oldukları bir listeye taşıyacaktır, ancak bir sayfa hatası oluştuğunda, takas dosyasından yüklemek zorunda kalmadan listeden geri çekilecektir. Bekleme bu da dahil olabilir. Farklı araçlar, farklı setleri farklı şekillerde etiketler.

En azından bu test için takas dosyasını kapatmayı deneyebilirsiniz. Bu, veri belleğinin gerçekten kullanılmasına neden olur. Procexp bunu açıkça görmek için yeterli olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.