PDA

View Full Version : سوال: مشکل پردازش آرایه بزرگ در سی شارپ و کمبود حافظه



MasoudAliAkbari
یک شنبه 27 مرداد 1392, 04:57 صبح
با سلام
من میخوام آرایه ای از اعداد را در برنامه ام لود کنم و رویشان پردازشی انجام دهم و یک خروجی تولید کنم، اما مشکل اینجاست که ابعاد آرایه در حدود 50000*50000 می باشد و وقتی می خواهد داده ها را لود کند حافظه رم کم میارد،
به نظر شما چی کار کنم؟

اومدم داده ها را ریختم در پایگاه داده و برنامم را با دیتابیس ارتباط دادم ولی متاسفانه پردازش ها خیلی زمان گیر است و اجرای برنامه خیلی زیاد طول می کشد، خواهشا اگر راه حلی به نظرتان می رسد راهنمایی کنید،
ممنون

mousa1992
یک شنبه 27 مرداد 1392, 05:07 صبح
سلام
در مورد نوع پردازشتون و کاری که میخواین انجام بدین توضیح بدین - شاید دوستان ایده ای داشته باشن

elahe1364
یک شنبه 27 مرداد 1392, 07:49 صبح
دقیقا مطمئن نیستم ولی شاید استفاده از لیست بهتون کمک کنند.
http://www.dotnetperls.com/list

arefba
یک شنبه 27 مرداد 1392, 08:40 صبح
چرا آرایه ؟؟
توضیح بدید چیکار میخواید بکنید

MasoudAliAkbari
یک شنبه 27 مرداد 1392, 13:57 عصر
دقیقا مطمئن نیستم ولی شاید استفاده از لیست بهتون کمک کنند.
http://www.dotnetperls.com/list
از لیست هم استفاده کردم ولی اونجوری هم حافظه کم میاد

MasoudAliAkbari
یک شنبه 27 مرداد 1392, 14:01 عصر
سلام
در مورد نوع پردازشتون و کاری که میخواین انجام بدین توضیح بدین - شاید دوستان ایده ای داشته باشن
داده ها مربوط به کاربران یک سایت اجتماعی می باشد، و ارتباط کاربران با یکدیگر در این ماتریس مشخص شده، مثلا اگر درایه ی 2-3 برابر 1 باشد یعنی کاربر 2 با کاربر 3 دوست است،
حالا یه همچین ماتریسی داریم و یک ماتریس دیگر هم داریم که ماتریس Rating هستش
یعنی نظرات کاربران در آن ذخیره شده
حالا باید لا الگوریتم پیرسون فیلدهای خالی پر شوند، برای همین اول کار باید کاربران خوشه بندی شوند
که وقتی میخوام این ماتریس را لود کنم حافظه کم میاد

aliagamon
یک شنبه 27 مرداد 1392, 15:08 عصر
برای این کار من پیشنهاد میکنم که از دیتابیس استفاده کنی....و البته دیتابیس های واسطه ای جواب نمیده یه دیتابیس NOSQL استفاده کن....واسه این کار مانگو دی بی بهترین انتخابه:لبخند:
خود بیس مانگو دیبی با سی ++ نوشته شده و از اون تو تغرییبا تمام زبان ها میشه اتفاده کرد و در واقع به جدول های دو بعدی محدود نمیشه بلکه اطلاعات سندی دسته بندی میشن (تکنولوژی BSON الهام گرقته از JSON)
بری تو خود سایت مانگو دیبی داکیومنت ها و درایوراش هست...

FastCode
یک شنبه 27 مرداد 1392, 15:54 عصر
مشکل شما حد اکثر ۴ مگ رم میخواد ولی با روش فعلیتون دارید بیش از ۴ گیگ مصرف میکنید.
به نظر من بهتره ۳ ۴ تا تکنولوژی و روش رو یاد بگیرید:
1.Map Reduce
2.Database Normalization
3.Bloom filter
4.Sparse Matrix