Komputer tidak menggunakan lebih dari 4 dari 8GB RAM saya ...? (Komputer 64-bit)

17

Baru-baru ini, untuk membuktikan komputer saya di masa mendatang, saya telah menambahkan di atas memori 4GB asli saya. Saya membawa total memori ke 8GB, dan saya tidak mendapatkan perubahan kecepatan - bahkan saat seharusnya. Saya pergi untuk melihat Task Manager dan melihat bahwa komputer saya TIDAK akan lebih dari 4GB memori yang digunakan, bahkan dengan Chrome dan Firefox terbuka dengan masing-masing 20 tab.

Setelah meneliti, semua yang disarankan semua orang adalah memeriksa berapa banyak memori yang bisa digunakan. Anehnya, ia mengatakan bahwa saya memiliki memori 8GB, dan 7.74GB dapat digunakan.

Spesifikasi untuk HP Pavilion g7-1075dx saya dapat ditemukan di sini. Ini adalah PC notebook dengan Windows 7 Home Premium 64-bit dengan AMD Phenom II.

Pertanyaan utama saya adalah: dengan komputer 64-bit saya, mengapa komputer saya tidak menggunakan lebih dari 4GB memori, bahkan ketika lebih dari 7 dapat digunakan?

EDIT: jika itu membantu, Resource Monitor menggambarkan semua RAM lainnya sebagai "Siaga"

mattycfp
sumber
1
Bagaimana Anda bisa melihat bahwa itu tidak menggunakan lebih dari 4GB? Sudahkah Anda mencoba program saya yang lain untuk menguji atau menggunakan memori? Chrome dan Firefox tidak terlalu menuntut ingatan ...
Mokubai
9
Sejauh ini, belum ada yang menyebutkan bahwa lebih banyak RAM tidak membuat komputer lebih cepat. Satu-satunya waktu Anda akan melihat tonjolan kecepatan yang terlihat adalah jika beban kerja Anda menghabiskan begitu banyak RAM sehingga Windows perlu terus-menerus halaman ke disk - dalam hal ini menambahkan lebih banyak RAM pasti dapat mempercepat segalanya. Tetapi 98% orang tidak melakukan hal-hal yang membutuhkan RAM> 4GB, dan akibatnya, tidak akan pernah merasakan manfaat nyata dalam memiliki semua RAM ekstra itu.
misha256
1
@ mattycfp Ada satu kemungkinan lain yang saya ketahui yang dapat membatasi penggunaan RAM Windows. Apakah mungkin Anda, orang lain, atau beberapa perangkat lunak memberikan LIMIT pada penggunaan RAM? Lihatlah artikel ini dan ikuti instruksi: helpdeskgeek.com/windows-7/…
misha256
1
Firefox memiliki batas 2GB di semua tab / proses, mungkin juga chrome. Ini di samping batas normal per proses.
JamesRyan
6
Memiliki Firefox dan Chrome terbuka dengan 20 tab masing-masing jelas tidak cukup. Saya memiliki Firefox terbuka dengan 157 tab bahkan tidak mengkonsumsi 1 GB RAM. Periksa saat menjalankan game. Jawaban Jamie Hanrahan sangat bagus dan terperinci. Untuk informasi lebih lanjut baca di posting blog Mark Russinovich Mendorong batas Windows. tautan .
sbecker

Jawaban:

27

jika itu membantu, Resource Monitor menggambarkan semua RAM lainnya sebagai "Siaga"

"Standby" RAM sedang digunakan. Itu sedang digunakan sebagai cache halaman (ini menyimpan halaman baru-baru ini hilang dari semua set kerja proses; yaitu kesalahan halaman ini dapat diselesaikan tanpa pergi ke disk) dan juga untuk cache file proaktif oleh SuperFetch.

Itu dianggap "tersedia" karena halaman Siaga tidak harus ditulis ke disk sebelum mereka dapat ditugaskan untuk penggunaan lain. Seperti ketika proses hits kesalahan halaman yang tidak memerlukan membaca dari disk, page fisik baru (s) harus dialokasikan untuk proses itu, dan jika perlu ini dapat diambil dari daftar siaga. (Ini bukan pilihan pertama untuk menemukan halaman untuk tujuan ini, itu akan menjadi gratis dan kemudian daftar halaman nol.)

Dengan kata lain sistem Anda beroperasi sebagaimana mestinya.

Anda dapat memaksa sistem Anda untuk mendapatkan lebih banyak RAM ke dalam status "sedang digunakan" dengan mudah dengan alat baris perintah testlimit, salah satu alat yang digunakan dalam percobaan di Windows Internal . Ini bukan bagian dari alat sysinternals biasa tetapi dikaitkan dengan mereka; temukan di sini di situs sysinternals. Unduhan adalah file zip yang berisi dua versi, testlimit.exe dan testlimit64.exe. Keduanya terkait dengan alamat-besar, sehingga versi 32-bit akan dapat mengalokasikan hingga 3 GiB pada mesin 32-bit yang dibooting dengan / 3GB, hingga 4 GiB pada mesin 64-bit.

c:\> testlimit -? memberi bantuan.

c:\> testlimit -d 4 -c 512akan berusaha untuk mengalokasikan 2 GiB dari ruang alamat virtual proses-pribadi dalam alokasi masing-masing 512 MiB. Ini seharusnya bekerja dengan baik pada mesin 64-bit. Pada mesin 32-bit yang tidak di- boot dengan / 3GB (kebanyakan tidak) mungkin kesalahan sedikit lebih awal b / c sudah ada beberapa MiB hal dalam proses (seperti program itu sendiri, semua DLL, dll.), Jadi tidak ada cukup 2 GiB yang tersedia untuk dialokasikan oleh program.

Dalam kedua kasus akan ada pengurangan dalam RAM "tersedia", dan peningkatan dalam "Dalam penggunaan" RAM, tetapi belum tentu senilai 2 GiB karena tidak ada jaminan bahwa OS akan meninggalkan semua 2 GiB dalam proses set kerja swasta. Bahkan jika itu melakukan itu dalam jangka pendek, Anda mungkin melihat proses penurunan set kerja nanti sebagai OS memutuskan "hm, Anda tidak benar-benar melakukan apa-apa dengan itu, proses lain membutuhkan lebih banyak" dan mengeluarkannya.

Tingkatkan ukuran alokasi "bongkahan" terlalu banyak, dengan mengurangi jumlah bongkahan yang sesuai, dan kemungkinan akan gagal lebih cepat karena setiap alokasi harus hampir bersebelahan. mis. coba temukan tujuh 512 MiB chunks dalam ruang alamat 4 GiB dan kemungkinan Anda akan gagal.

Jika Anda menggunakan opsi l (eak) alih-alih d (irty) program akan mengalokasikan ruang virtual tetapi tidak akan pernah merujuknya. Ini tidak akan menghasilkan penurunan yang berarti pada "tersedia" RAM.

(Opsi d (irty) mengambil namanya dari "bit halaman kotor" pada entri tabel halaman x86 / x64, yang ditetapkan ketika halaman virtual yang sesuai diakses dengan operan gaya "modifikasi", artinya konten halaman tersebut memiliki telah diubah. Ini adalah indikasi Windows bahwa, jika halaman tersebut harus diusir dari proses kerja, isinya harus disimpan di suatu tempat sebelum halaman dapat digunakan untuk sesuatu yang lain. Halaman dengan bit "kotor" diset ke "daftar halaman yang diubah" segera setelah penggusuran; dari sana, Windows menulisnya ke toko dukungan masing-masing.)

Anda harus memiliki cukup "komit" yang tersedia agar tes ini berfungsi seperti yang dijelaskan di atas (bahkan untuk opsi l (eak), meskipun opsi ini tidak menggunakan jumlah RAM yang cukup). Secara khusus, "batas komit" Anda harus setidaknya 2 GiB (atau seberapa banyak Anda mengalokasikan) lebih tinggi dari "biaya komit" sebelum memulai tes Anda. Perhatikan bahwa ini berlaku bahkan jika Anda menggunakan opsi l (eak), bukan hanya d (irty). Jika Anda mengalami batas ini, Anda akan melihat pop-up "sistem kehabisan memori" atau sejenisnya. Obatnya, tentu saja, adalah menambahkan lebih banyak RAM dan / atau meningkatkan pengaturan pagefile Anda.

Jamie Hanrahan
sumber
16

Windows sebenarnya dapat dikonfigurasi untuk membatasi penggunaan RAM. Saya tidak tahu bagaimana atau siapa yang akan mengkonfigurasi pengaturan ini di laptop Anda, tetapi Anda harus memeriksa:

Pengaturan Max Ram

Artikel ini memiliki detail lebih lanjut, tetapi membuka kotak dialog di atas mudah:

  1. Klik Mulai Ikon dan ketik msconfig.exeke dalam kotak pencarian

    cara menjalankan msconfig

  2. Luncurkan msconfig.exe, klik pada Boottab, lalu klik Advanced Options...tombol, dan Anda berada di:

    dialog pengaturan boot msconfig

  3. Masukkan nilai yang masuk akal, mis. 8192 untuk 8GB RAM, atau hapus centang pada Maximum memorykotak centang yang seharusnya membuat Windows menggunakan semua RAM yang Anda miliki. Saya pasti akan mencoba opsi KEDUA.

    pengaturan ram maksimum

misha256
sumber
@ misha256 - Sangat bingung dengan jawaban yang awalnya sangat sedikit isinya, dan ya, jika orang lain mengirimkan salah satu jawaban, saya bahkan tidak akan berpikir dua kali tentang jawaban (kecuali mungkin menilai bantuan mereka sedikit lebih keras).
Ramhound
@ misha256 jika ini masalahnya maka OP tidak akan melihat sekitar 4 GB sedang digunakan dan sekitar 4 GB standby. RAM yang dikecualikan oleh opsi itu tidak muncul di "standby"; OP juga tidak akan melihat "memori 8GB, dan 7.74GB dapat digunakan". (256 MB tidak "dapat digunakan" diharapkan karena misalnya kartu video).
Jamie Hanrahan
10

Anda dapat menggunakan SysInternals RAMMap untuk melihat apa yang dilakukan PC dengan RAM fisik Anda . Alat-alat lain seperti Task Manager atau Process Explorer terutama berfokus pada memori virtual dan bukan alat terbaik untuk situasi ini.

Di tab "Gunakan hitungan", Anda mungkin melihat bahwa sebagian besar tidak digunakan saat Anda belum membuka banyak aplikasi.

SysInternals RAMMap

Ini tidak berarti PC Anda akan tetap dalam kondisi ini. Cukup buka beberapa program dan memori akan digunakan.

Thomas Weller
sumber
Istilah "RAM virtual" tidak boleh digunakan. Juga, saya tidak akan mengatakan bahwa alat-alat lain fokus terutama pada memori virtual - mereka memiliki banyak counter yang menunjukkan penggunaan memori fisik.
Jamie Hanrahan
5

Mengutip dari artikel yang sangat bagus tentang masalah ini:

Lebih banyak memori tidak benar-benar meningkatkan kecepatan pemrosesan [komputer]. Hanya CPU yang lebih cepat yang bisa melakukannya.

Dan dalam pengalaman saya itu benar, secara umum. Kecuali jika Anda menjalankan banyak program pada saat yang sama dan program-program tersebut memiliki persyaratan RAM yang signifikan, Anda tidak akan melihat manfaat nyata di dunia dalam memiliki lebih dari 4GB RAM.

Orang-orang tampaknya tidak menyadari bahwa 4GB adalah banyak RAM. Membuat Windows menggunakan lebih dari itu membutuhkan upaya. Anda harus membuka banyak aplikasi berbeda dan, di dalam aplikasi itu, buka beberapa file besar. Lemparkan beberapa tab video YouTube dan Anda mungkin baru saja mulai melihat pemanfaatan> 4GB.

misha256
sumber
2
@ mattycfp Saya baru saja membuka 16 Windows pada mesin 4GB saya, termasuk Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (babi RAM yang dikenal), Photoshop, Media Player, VLC, MPC-HC, ditambah beberapa aplikasi acak lainnya, dan saya beralih di antara mereka melakukan hal-hal, memuat dokumen, memutar video, semuanya, dan penggunaan RAM saya yang sebenarnya adalah 2.2GB DAN mesin ini CEPAT seperti sebelumnya. Lihat, 4GB melakukan semua itu dengan mudah ;-)
misha256
3
@mattycfp 120 Windows FF? Anda lebih mungkin memaksimalkan CPU Anda daripada RAM melakukan itu, terutama pada laptop. Juga jangan lupa FF adalah aplikasi 32-bit, dan beberapa jendela FF sebenarnya BERBAGI proses 32-bit tunggal, jadi FF sebenarnya sangat terbatas, hanya dapat menggunakan 2GB dari total 8GB Anda. Itu sebabnya Anda perlu menjalankan banyak aplikasi yang berbeda pada saat yang sama untuk menguji bagaimana Windows menggunakan RAM Anda, bukan hanya 120 Windows FF.
misha256
4
@ misha256 Anda akan melihat peningkatan kinerja jika sistem Anda terus bertukar memori. Saat tekanan memori meningkat, paging meningkat, dan sistem melambat. Bukannya menambahkan memori akan membuat Anda lebih cepat, tetapi itu akan mencegah Anda melambat, terutama jika perangkat lunak yang terlibat mengasumsikan jumlah paging tertentu dalam persyaratan sistemnya. Artikel itu sepertinya tidak menyebutkan banyak tentang paging. Paging adalah apa yang memperlambat Anda.
phyrfox
4
@ misha256 Saya memiliki IRC, Spotify, Notepad ++, Chrome dan Task Manager terbuka dan saya menggunakan 3.02GB dari total 4GB saya :( Membuka 3 contoh VS2013 (yang cenderung saya lakukan di tempat kerja) dan itu membuat saya lebih senang. Ini sedikit lebih mudah untuk mencapai batas 4GB daripada yang Anda kira, tetapi secara praktis membutuhkan pengguna yang kuat
Thebluefish
1
@ misha256 Koreksi: FF adalah address-aware besar dan dapat menangani hingga 3GB dalam proses 32-bit. Versi 64-bit FF (saat ini dalam versi beta untuk Windows) jelas dapat mengatasi jauh lebih banyak. Saya juga merasa Anda terlalu umum ketika mengatakan sulit untuk "menggunakan" (resident private working set) lebih dari 4GB RAM; itu sangat tergantung pada apa yang Anda lakukan dan seberapa banyak Anda tetap terbuka. Penggunaan garis dasar saya sudah melebihi itu.
Bob
5

Windows melakukan beberapa hal pintar seperti memori paging. Bisa jadi itu melihat sebagian besar tugas yang Anda lakukan sebagai tidak perlu dan memutuskan untuk membuang banyak barang ke file halaman, membuatnya terlihat seperti sedang melakukannya hanya untuk menghindari menggunakan semua RAM Anda. Anda dapat menguji teori ini dengan menonaktifkan paging, meskipun ini bukan hal yang seharusnya Anda konfigurasikan secara permanen. Ada banyak tutorial di internet untuk melakukan ini. Salah satu hal yang dilakukannya (bahkan pada mesin 24GB dan 64GB saya) adalah membuat aturan paging jauh lebih ketat ketika mencapai sekitar 50%, 80%, dan 90% konsumsi (angka-angka ini merupakan perkiraan). Saya perhatikan pada masing-masing tahap ini banyak barang akan dibuang ke file halaman.

Hal yang menyenangkan untuk dilakukan mungkin seperti ini:

#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;
}

Itu beberapa kode C. Dapatkan GCC atau kompiler, buat sendiri exe, dan perhatikan konsumsi memori Anda naik. Jika Anda ingin menggunakan lebih dari 2GB memori, Anda harus mengkompilasi dan menjalankannya sebagai proses 64-bit. Jika Anda menyukai hal semacam itu, ini bisa menjadi eksperimen yang menarik, jika tidak ada yang lain :)

Sunting: Hanya ingin mencatat bahwa program tidak akan mati dengan ini. Saya mengeditnya dari beberapa kode sebelumnya karena saya tidak yakin bahwa kode lain akan berfungsi (memori akan paged, sehingga tidak ada memori yang dikonsumsi, lol). Kode baru berisi baris int gb = 2; // memory to consume in GB- mengubah 2 akan menyesuaikan jumlah memori yang harus dikonsumsi program, sehingga Anda dapat mengaturnya untuk menggunakan sebanyak yang Anda inginkan. Mengaturnya ke sesuatu di atas apa yang dimiliki sistem Anda mungkin akan menyebabkannya macet (tidak diuji, jadi gunakan dengan hati-hati)

XtrmJosh
sumber
Saya berharap saya dapat mengkompilasinya, tetapi Internet saya terus merusak setiap unduhan yang saya coba: U
mattycfp
5
@mattycfp Jadi Anda tidak dapat menggunakan> 4GB RAM di OS Anda, dan semua unduhan Anda tetap rusak? Saatnya untuk (a) Menyeka hard drive dan melakukan instalasi OS baru, atau (b) membuang laptop ke tempat sampah dan sudah mendapatkan yang benar.
misha256
1
Program yang ditawarkan mengalokasikan dan "menyentuh" ​​2 GB memori virtual, satu halaman pada satu waktu, yang akan mengakibatkan setiap halaman mengalami kesalahan dalam RAM segera setelah dialokasikan. Tetapi itu tidak menjamin bahwa Windows akan menyimpan semuanya dalam RAM secara bersamaan. Karena program tidak berulang kali mengakses semua vm, halaman yang dialokasikan terlebih dahulu dapat dikenakan paging out. Anda bisa mendapatkan efek yang sama seperti program itu dengan alat Windows Internals "testlimit", opsi -d.
Jamie Hanrahan
@ mattycfp jika itu masalahnya, Anda mungkin ingin melihat bahwa RAM tidak bersalah ... Apakah setiap file yang Anda unduh rusak entah bagaimana? Kadang-kadang ada masalah dengan tongkat yang tidak kompatibel, jadi Anda harus memeriksa manual motherboard dan mengonfirmasi bahwa RAM Anda diatur sesuai dengan instruksi tersebut (slot akan diberi nomor 1 & 2 atau 1-4, dan biasanya 1 & 3 harus dipasangkan dengan "type" atau "make and model" RAM yang sama, seperti halnya 2 dan 4). & Ya program ini harus menggunakan hingga 2GB, yang dapat diedit dengan mengubah jalur int gb = 2; // memory to consume in GB- cukup ganti 2.
XtrmJosh
Mengapa Anda mendeklarasikan gb sebagai tipe int ketika satu-satunya penggunaan melemparkannya ke unsigned long? Anda juga memperlakukan saya dengan cara yang sama dan melakukan perbandingan campuran antara int dan cast-to unsigned. Jadi, buat saja saya lama tidak bertanda tangan.
JDługosz
1

Apakah Anda menggunakan program 32-bit untuk menguji seberapa cepat komputer berjalan? Jika demikian, perhatikan bahwa alamat 32-bit hanya dapat menunjuk ke 4 GB RAM, bahkan jika Anda memiliki lebih banyak RAM. Anda harus mengulang tes dengan menggunakan program 64-bit dan memeriksa kecepatannya dengan 4 GB RAM yang hadir, dan lagi dengan 8 GB RAM yang ada, jika Anda menginginkan hasil yang bermanfaat. Juga, itu harus menjadi program 64-bit yang dapat menggunakan lebih dari 4 GB memori untuk berjalan lebih cepat - tidak semuanya bisa. Untuk mengetahui apakah suatu program adalah 32-bit, mulailah program dan biarkan berjalan, kemudian jalankan Windows Task Manager, klik pada Proses, dan gulir ke bawah sampai Anda menemukan program yang menarik. Jika nama program di kolom Nama Gambar diikuti oleh spasi, maka * 32, maka itu adalah program 32-bit.

milesrf
sumber
jika Anda menjalankan beberapa program 32-bit, total penggunaan RAM dapat dengan mudah mencapai 8 GB.
Jamie Hanrahan
0

Dapatkan penjelajah proses (procexp) dari Sysinternals . Ini memiliki grafik sumber daya dan dapat menunjukkan penggunaan memori per-proses, jauh lebih baik daripada tampilan proses stok.

Anda dapat melihat penggunaan ram fisik vs penggunaan spqce virtual, untuk melihat apakah Anda tidak menggunakan semuanya atau Anda tampaknya membutuhkan lebih banyak tetapi membatasi penggunaan fisik.

Sebagian besar program biasa menggunakan ukuran set kerja yang berbeda yang akan membuat permintaan tetap rendah. Jika sebuah program mengalokasikan satu ton memori, itu tidak benar - benar menggunakan semuanya pada saat yang sama ...

Windows akan secara agresif memindahkan halaman dari program Anda ke daftar di mana mereka tersedia, tetapi jika terjadi kesalahan halaman itu akan ditarik kembali dari daftar tanpa harus memuatnya dari swapfile. The siaga mungkin termasuk ini. Alat yang berbeda memberi label set yang berbeda dengan cara yang berbeda.

Anda dapat mencoba mematikan file swap, setidaknya untuk tes ini. Itu akan menyebabkan memori data benar-benar digunakan. Meskipun procexp mungkin cukup untuk melihatnya dengan jelas.

JDługosz
sumber