2013-02-26 32 views
10

Bellek uyarısı R analizimi etkiler mi? Ar büyük veri analizi komut çalıştırırkenR bellek sınırı uyarısı vs "alamıyor ..."

ben gibi bir uyarı şey elde:

In '... ' reached total allocation of ___Mb: see help...

Ama senaryo, hatasız sadece uyarı devam eder. diğer veri setleri ile ben gibi bir hata şey olsun: Ben hata benim veri analizini kırar biliyorum

Error: cannot allocate vector of size ___Mb:

, ama sadece uyarı alma ile yanlış bir şey var mı? Veri setimde eksik bir şey fark etmedim ama çok büyük ve her şeyi kontrol etmek için iyi bir yolum yok. Hafızada tahsis edilen 18000Mb'deyim ve daha fazla tahsis edemiyorum.

+0

Hangi platform/OS kullanıyorsunuz? Sys.info() ["makine"] 've' .Platform $ OS.type' komutunu çalıştırın. Windows altında 32bit R mi? –

+0

Bu 64-bit windows 7 kurumsal sürümü (x86-64, pencereler). Makinede 20Gb bellek var, ancak 19000Mb'yi ayırdığımda da aynı uyarıları alıyorum. Komutumda belleğin bir sorun olduğu bir bölüm var ve tam 18000Mb kullanıyorum (windows görev yöneticisinde de görünür). Birçok metin dosyasını içe aktarıp birleştirmem, birkaç hesaplamayı çalıştırmam ve sonra verileri daha küçük parçalara ayırmadan önce yeniden düzenlemem gerekiyor. – GregS

+2

Sisteminizdeki tüm belleği ayırmayı deneyebilirsiniz. R, işletim sistemi tarafından zaten kullanılmakta olan belleği çalamıyor. Kodunuzun bellek yoğun bölümleri sırasında 'gc()' nin liberal kullanımına yardımcı olabileceğinden emin değilim? –

cevap

8

Way geri R 2.5.1 news I bellek ayırma uyarıları bu referans buldum: Uyarı verildiği bu notta dayanarak

malloc.c has been updated to version 2.8.3. This version has a slightly different allocation strategy, and is likely to work a little better close to address space limits but may give more warnings about reaching the total allocation before successfully allocating.

, ben (iç uygulama herhangi bir gelişmiş bilgi olmadan) varsayımında zaman bellek R (malloc.c) 'de ayırma çağrısı, bellek ayırma girişimi başarısız oldu. Bellek ayırmak için, muhtemelen farklı yöntemler kullanarak ve muhtemelen çöp toplayıcısına yapılan çağrılar ile çoklu girişimler yapılır. Yalnızca, numaralı tahsisatın yapamadığından emin olunca bir hata döndürür.

Uyarılar mevcut R nesnelerini etkilemez. Sadece kullanıcıyı R'nin bilgisayar belleği sınırlarına yaklaştığını bildiriyorlar.

(Umarım daha bilgili bir kullanıcı bunu onaylayabilir ...)

+1

Gerçekten de R'nin uyarıyı verdiğinde çöp toplayıcısını çağırması gibi görünüyor. Başarılı ayırmalar için bazı uyarıları ve GC iletilerini gözlemlemek amacıyla, günlüğe kaydetmeyi etkinleştirmek ve sınır etrafında bellek ayırmak için gcinfo (TRUE) 'özelliğini kullanabilirsiniz. – Jerzy

İlgili konular