Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

14 Ekim 2007 Pazar

Managed ve UnManaged KOD ne demektir?

Managed kod demek hafıza yönetimi(memeory management) yonetilen demek oluyor.Oluşturduğun değişkenlerin yok edilmesi işini kullandığın sistem(FrameWork, Programlama dili...) yapıyor demektir.

Örneğin:
SqlCommand cmd = new SqlCommand();
..
...
....
cmd.Dispose(); //işin bitti uçur bellekten..


Bunu kendin yaptın.Ama sen eğer x kadar süre kullanmazsan Çöp Toplayıcı(Garbage Collector) bunu senin yerine yapacaktı. Bunu senin yerine yapan bir sistemde yazılan kod MANAGED CODE(yönetilen kod) demektir.


UNMANAGED KOD(Yönetilmeyen Kod) ise tam tersidir.Yani bellek yonetimi senin tarafından yapılan, başkası tarafindan yonetilmeyen demek oluyor. Yukarıdaki örneğe göre, cmd.Dispose() işini daima senin yapman gereken kodlama.

Örneklemek gerekirse VC++ 6 programı unmanaged koddur. Çunku onda memory yonetimi (Allocation ve Deallocation lar objeleri delete le silme falan) kodcu tarafından yapılır.

Ancak .NET'te ve Java'daGC (Garbage collector - Çöp toplayıcı) vardır.

Garbage collector Nedir? Nedir bu GC ?
GC .NET te hafıza işlerini yoneten mekanizmadır ve Java bu işin öncüsüdür. Yani programının bellekt yonetimi onun tarafından yapılır. Bir obje yarattığında (new le) onun için bellekte bir alan açmak daha sonra bu obje ile işin bittiğinde ona artık herahangi bir referans kalmadığında onun Dispose edilmesi ve Finalize edilmesi gibi işlemleri yapar. Memoryde alan sıkıntısı olduğunda çalışıp yok edebileceği objeleri kaldırır. Bu nedenle her nesne için önce alloc sonrada işin bittiğinde delete demek zorunda kalmazsın.

Hiç yorum yok: