আমি আর-তে বড় বড় অবজেক্টগুলি ব্যবহার করার চেষ্টা করে যাচ্ছি example উদাহরণস্বরূপ:
> memory.limit(4000)
> a = matrix(NA, 1500000, 60)
> a = matrix(NA, 2500000, 60)
> a = matrix(NA, 3500000, 60)
Error: cannot allocate vector of size 801.1 Mb
> a = matrix(NA, 2500000, 60)
Error: cannot allocate vector of size 572.2 Mb # Can't go smaller anymore
> rm(list=ls(all=TRUE))
> a = matrix(NA, 3500000, 60) # Now it works
> b = matrix(NA, 3500000, 60)
Error: cannot allocate vector of size 801.1 Mb # But that is all there is room for
আমি জানি এই (থেকে মেমরি সংলগ্ন ব্লক পাওয়ার অসুবিধা সঙ্গে সম্পর্কযুক্ত এখানে ):
ত্রুটি বার্তাগুলির শুরুতে আকারের ভেক্টর বরাদ্দ করতে পারে না মেমরির প্রাপ্তি ব্যর্থতা নির্দেশ করে, হয় কারণ কোনও প্রক্রিয়াটির জন্য আকারটি ঠিকানা-স্থান সীমা অতিক্রম করেছে বা সম্ভবত আরও বেশি কারণ সিস্টেম মেমরি সরবরাহ করতে অক্ষম। মনে রাখবেন যে একটি 32-বিট বিল্ডে যথেষ্ট বিনামূল্যে মেমরি উপলব্ধ থাকতে পারে, তবে এটিতে ম্যাপ করার জন্য ঠিকানার জায়গার বৃহত পরিমাণে সামঞ্জস্যপূর্ণ ব্লক নয়।
আমি ইটা কিভাবে পার করে ফেলতে পারি? আমার প্রধান অসুবিধাটি হ'ল আমি আমার স্ক্রিপ্টের একটি নির্দিষ্ট পয়েন্টে পৌঁছেছি এবং আর কোনও বস্তুর জন্য আর 200-300 এমবি বরাদ্দ করতে পারি না ... আমি সত্যিই ব্লকটির প্রাক-বরাদ্দ করতে পারি না কারণ অন্যান্য প্রসেসিংয়ের জন্য আমার স্মৃতি দরকার। এমনকি আমি যখন অবিচ্ছিন্নভাবে অপ্রয়োজনীয় বস্তুগুলি সরিয়ে ফেলি তখনও এটি ঘটে।
সম্পাদনা: হ্যাঁ, দুঃখিত: উইন্ডোজ এক্সপি এসপি 3, 4 জিবি র্যাম, আর 2.12.0:
> sessionInfo()
R version 2.12.0 (2010-10-15)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_Caribbean.1252 LC_CTYPE=English_Caribbean.1252
[3] LC_MONETARY=English_Caribbean.1252 LC_NUMERIC=C
[5] LC_TIME=English_Caribbean.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Calloc
এবং Free
মেমরির পক্ষে কেউ পারেন তবে আমি সন্দেহ করি যে এটি বেঞ্জামিন করছেন না।