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"
Jawaban:
"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 512
akan 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.
sumber
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:
Artikel ini memiliki detail lebih lanjut, tetapi membuka kotak dialog di atas mudah:
Klik Mulai Ikon dan ketik
msconfig.exe
ke dalam kotak pencarianLuncurkan msconfig.exe, klik pada
Boot
tab, lalu klikAdvanced Options...
tombol, dan Anda berada di:Masukkan nilai yang masuk akal, mis. 8192 untuk 8GB RAM, atau hapus centang pada
Maximum memory
kotak centang yang seharusnya membuat Windows menggunakan semua RAM yang Anda miliki. Saya pasti akan mencoba opsi KEDUA.sumber
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.
Ini tidak berarti PC Anda akan tetap dalam kondisi ini. Cukup buka beberapa program dan memori akan digunakan.
sumber
Mengutip dari artikel yang sangat bagus tentang masalah ini:
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.
sumber
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:
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)sumber
int gb = 2; // memory to consume in GB
- cukup ganti 2.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.
sumber
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.
sumber