در قسمت قبلی درباره تفاوتهای Stack و Heap، صحبت کرده و به این نتیجه رسیدیم که برای آزادسازی حافظه Heap، در صورتیکه نخواهیم اینکار را بصورت دستی انجام دهیم، نیاز به Garbage Collector پیدا خواهیم کرد. تاریخچهای مختصر از GC در NET.
ایده اولیه ایجاد Garbage Collector در NET.، در سال 1990 بود که در آن زمان، مایکروسافت مشغول پیاده سازی خود از JavaScript بنام JScript بود. در ا ...
در این مطلب قصد داریم به تفاوتهای بین Stack و Heap در Memory و زبان #C بپردازیم.
به زبان ساده، وقتی شما متغیر جدیدی را ایجاد میکنید، با توجه به نوع (Type) آن متغیر، "مقدار" متغیر شما در Stack یا Heap قرار خواهد گرفت. Stack Stack نوعی ساختمان دادهاست که در آن، دادهها بصورت خطی قرار گرفته و اصطلاحا ساختار LIFO ( مخفف Last i ...
آشنایی با Virtual Address spaces فضای آدرسدهی مجازی: موقعی که یک پردازشگر در مکانی از حافظه عمل خواندن و نوشتن را آغاز میکند، از آدرسهای مجازی بهره میبرد. بخشی از عملیات خواندن و نوشتن، تبدیل آدرسهای مجازی به آدرسهای فیزیکی در حافظه است. این عمل سه مزیت دارد: آدرسهای مجازی به صورت پیوسته و پشت سر هم هستند و آدرس دهی بسیار راحت است ولی دادهها بر روی یک حافظه به صورت متصل به هم یا پیوسته ذخیره یا خوانده نمیشو ...
در WPF، زیر ساختهای ComponentModel توسط کلاسی به نام PropertyDescriptor، منابع Binding موجود در قسمتهای مختلف برنامه را در جدولی عمومی ذخیره و نگهداری میکند. هدف از آن، مطلع بودن از مواردی است که نیاز دارند توسط مکانیزمهایی مانند INotifyPropertyChanged و DependencyProperty ها، اطلاعات اشیاء متصل را به روز کنند.
در این سیستم، کلیه اتصالاتی که Mode آنها به OneTime تنظیم نشده است، به صورت اجباری دارای یک valueChangedHandl ...
مدیریت حافظه در JavaScript همانند مدل مدیریت حافظه در .NET میباشد. حافظه وقتی مورد نیاز است تخصیص پیدا میکند و وقتی دیگر مورد نیاز نیست آزاد میشود. این پروسه در CLR به نام جمع آوری زباله یا Garbage Collector یا GC مشهور است. تفاوت عمده فی مابین مدیریت حافظه در .NET با مدیریت حافظه در JavaScript این است که مدیریت حافظه در .NET توسط CLR واحد انجام میشود. یعنی پیاده سازی واحدی از GC وجود دارد و شما میتوانید از نوع فعالیت آن اطمینان حاصل ...