Meningkatkan (atau mengurangi) memori yang tersedia untuk proses R.

123

Saya ingin menambah (atau mengurangi) jumlah memori yang tersedia untuk R. Apa metode untuk mencapai ini?

medriscoll
sumber

Jawaban:

64

Dari:

http://gking.harvard.edu/zelig/docs/How_do_I2.html ( cermin )

Pengguna Windows mungkin mendapatkan pesan kesalahan bahwa R kehabisan memori.

Jika Anda sudah menginstal R dan kemudian menginstal lebih banyak RAM, Anda mungkin harus menginstal ulang R untuk memanfaatkan kapasitas tambahan.

Anda juga dapat mengatur jumlah memori yang tersedia secara manual. Tutup R, kemudian klik kanan pada ikon program R Anda (ikon di desktop atau di direktori program Anda). Pilih `` Properties '', lalu pilih tab `` Shortcut ''. Cari bidang `` Target '' dan setelah tanda kutip penutup di sekitar lokasi eksekusi R, tambahkan

--max-mem-size = 500M

seperti yang ditunjukkan pada gambar di bawah ini. Anda dapat meningkatkan nilai ini hingga 2GB atau jumlah maksimum RAM fisik yang telah Anda instal.

Jika Anda mendapatkan kesalahan bahwa R tidak dapat mengalokasikan vektor dengan panjang x, tutup R dan tambahkan baris berikut ke bidang `` Target '':

--max-vsize = 500M

atau yang sesuai. Anda selalu dapat memeriksa untuk melihat berapa banyak memori R yang tersedia dengan mengetik di prompt R.

memory.limit()

yang memberi Anda jumlah memori yang tersedia dalam MB. Dalam versi sebelumnya dari R Anda perlu menggunakan: round(memory.limit()/2^20, 2).

BobbyShaftoe
sumber
7
Perhatikan bahwa pada Windows 32-bit, R hanya dapat menggunakan hingga 3Gb RAM, terlepas dari seberapa banyak Anda telah menginstal. Ada versi 64-bit R untuk Windows yang tersedia dari REvolution Computing, yang berjalan pada Windows 64-bit dan dapat menggunakan semua RAM yang tersedia: Revolution-computing.com/products/revolution-enterprise.php
David Smith
6
Hanya dua catatan: (i) memory.limit () hanya berfungsi di Windows, dan (ii) perintah yang akan mengembalikan jawaban yang benar adalah round (memory.limit (), 2) - setidaknya pada versi R saya ( 2.8.1).
medriscoll
31
Adakah saran tentang cara mendapatkan informasi serupa seperti memory.limit () yang bekerja di linux?
kecuali
5
Halaman web tidak ada lagi. Sulit bagi saya untuk mengikuti ini tanpa gambar. Saya tidak melihat tab "Pintasan" misalnya. Juga, dapatkah Anda menggunakan ini untuk mengurangi memori maksimal?
blakeoft
6
Lantas, bagaimana dengan pengguna mac? Bisakah kita melakukan sesuatu tentang itu?
Alfredo Lozano
51

Gunakan memory.limit(). Anda dapat meningkatkan default menggunakan perintah ini memory.limit(size=2500), dengan ukuran dalam MB. Anda harus menggunakan 64-bit untuk memanfaatkan ini secara nyata.

Satu saran lainnya adalah menggunakan objek hemat memori jika memungkinkan: misalnya, gunakan matriks, bukan data.frame.

Shane
sumber
3
Saya tidak begitu mengerti bagaimana ini bekerja. Saya mengalami masalah batas memori ini dan menerima pesan kesalahan "Mencapai alokasi total 8182Mb". Saya menggunakan 64-bit dengan ram 8GB jadi sepertinya saya SOL. Namun, untuk shiggles, saya menyetel memory.limit (size = 50000) ... DAN BERHASIL! Tapi kenapa???
ahli kehutanan
2
Saya tahu ini berusia 7 tahun, tetapi saya mencoba mengurangi jumlah RAM yang dapat digunakan oleh R tetapi setiap kali saya mencoba mengurangi nilai, saya mendapatkan pesan ini (Saya memiliki Ram 12 GB pada mesin Windows 64-bit) . Pesan peringatan: Dalam memory.limit (4095): tidak dapat mengurangi batas memori: diabaikan
hellter
7

Microsoft Windows menerima permintaan memori apa pun dari proses jika itu bisa dilakukan.

Tidak ada batasan untuk memori yang dapat disediakan untuk suatu proses, kecuali Ukuran Memori Virtual.

Ukuran Memori Virtual adalah 4GB dalam sistem 32bit untuk proses apa pun, tidak peduli berapa banyak aplikasi yang Anda jalankan. Proses apa pun dapat mengalokasikan memori hingga 4GB dalam sistem 32bit.

Dalam praktiknya, Windows secara otomatis mengalokasikan beberapa bagian dari memori yang dialokasikan dari RAM atau file halaman tergantung pada permintaan proses dan mekanisme file halaman.

Tetapi batasan lainnya adalah ukuran file paging. Jika Anda memiliki file halaman kecil, Anda tidak dapat mengalokasikan memori yang besar. Anda dapat meningkatkan ukuran file paging menurut Microsoft untuk memiliki lebih banyak ruang memori.

Isaac
sumber
5
  1. Beli lebih banyak ram
  2. Beralih ke OS 64-bit. Gabungkan dengan poin 1.
Dirk Eddelbuettel
sumber
23
Beli lebih banyak ram (dan beralih ke OS lain) bukanlah solusi yang tepat secara umum.
om-nom-nom
17
Tentu saja, seperti mengerjakan masalah kecil yang sesuai untuk masalah yang dihadapi. Mengharapkan solusi biasanya juga tidak memberi Anda solusi.
Dirk Eddelbuettel
2

Untuk meningkatkan jumlah memori yang dialokasikan ke R, Anda dapat menggunakan memory.limit

memory.limit(size = ...)

Atau

memory.size(max = ...)

Tentang argumen

  • size - numerik. Jika NA melaporkan batas memori, jika tidak meminta batas baru, di Mb. Hanya nilai hingga 4095 yang diperbolehkan pada build R 32-bit, tetapi lihat 'Detail'.
  • maks - logis. Jika TRUE jumlah maksimum memori yang diperoleh dari OS dilaporkan, jika FALSE jumlah yang sedang digunakan, jika NA batas memori.
Tiago Martins Peres 李大仁
sumber