PDA

View Full Version : حافظه های انبوه و پشته



koshte mordeie C#ur
سه شنبه 14 مرداد 1382, 16:30 عصر
سلام به همه ی دوستان گرامی طرفداران #C و عمو بیلی و کل خانواده ی net. آقا من یه پسر بازیگوش حالا میگن زلزله هستم 13 سالمه میخواستم بدنم حافظه ی انبوه چیچیه حافظه ی پشته چیکارست این وسط من یه کتاب #C دارم که یه فصلش در این مورد هستش ولی اصلا سر در نمیارم :cry: خواهشاً کمکم کنین تا اینو بفهمم و این کتاب تموم بشه اصلاً بسته بندی در حافظه یعنی چی به چه دردی میخوره آخه این کد رو ببینین :cry:
object obj;
int n=150;
obj=n;
تو این کتاب نوشته حالا یک کپی از n در حافظه ی انبوه بسته بندی شد حالا اگه بخوای ازش استفاده کنی چه جووری میشه اصلا 150 داده نمیشه :cry:
چیکار کنم کمک[/img]

Vahid_Nasiri
چهارشنبه 15 مرداد 1382, 02:01 صبح
به به! چه پسر گلی!

عزیزم در مورد پشته و اینها ، این کتاب برای اول کار زیاده روی کرده. این فصل را زود ردش کن بره! برای توضیح پشته و ... باید متوسل به زبان اسمبلی شد و .... که اصلا الان بدردت نمی خوره.
اون بیچاره خواسته متغیرها را توضیح بده ولی نتونسته به زبان ساده برای یک علاقمند 13 ساله توضیح بده.
قسمت دوم مقدمه ایی بر سی شارپ را که من اینجا گذاشتم مربوط به استفاده از متغیرها است اونها را بخون برات روشن می شه چجوری باید متغیر تعریف کنی و الی آخر.
یعنی این : http://www.barnamenevis.org/forum/viewtopic.php?t=2058

موفق باشی.

S.Azish
چهارشنبه 29 مرداد 1382, 19:03 عصر
در CLR, دو دشته متغیر وجود دارن 1-متغیرهای عادی یا ذاتی 2-متغیرهای که به نوعی شیئ هستند. متغیرهای دسته اول که به اونها Value Types گفته میشه در پشته یا Stack نگهداشته میشن و متغیرهای دسته دوم در انبوه یا Heap.

http://www.saeidazish.com/vars_1.gif

البته متغیرهایی هم که در Heap نگه داشته میشن در اصل از Stack به اونها در Heap اشاره میشه.

http://www.saeidazish.com/vars_2.gif

CLR از دو نوع روش برای این دو نوع داده ها استفاده میکنه تا بتونه به حداکثر سرعت و بازدهی برسه در صورتی که در جاوا فقط Heap وجود داره. در عین حال متغیرهایی که در Stack هستن بعد از تمام شدن استفاده از اونها از بین می روند ولی متغیرهایی دسته دوم را پروسه ای به نام Garbage Collector از بین میبره.