[.NET] Manage Resource VS Unmanage Resource

ช่วงนี้ผมลองศึกษา Pattern ออกแบบ Software ของฝั่ง Microsoft เสนออยู่ครับ โดยเป็นพวก MVP และ MVVM (เดี๋ยวว่าๆ จะมาเขียน Blog สรุปให้อ่ากันนะครับ) เมื่อผม"ศึกษา ค้นพบ เรียนรู้ และเจอปัญหาใหม่" ซึ่งทำให้ผมต้องทำความเข้าใจกับคำว่า "Manage Resource" กับ "Unmanage Resource" กันก่อน ว่าแต่ละคำ คือ อะไร และทำไมเราถึงต้องเข้าใจ และประยุกต์ใช้กับการ Coding ได้อย่างไร ?

Resource คือ อะไร ?

ถ้าแปลตรงตัว Resource คือ ทรัพยากร แล้วในคอมพิวเตอร์ของเรา ทรัพยากรที่มีอะไรบ้าง เช่น พลังในการประมวลผลของ CPU, หน่วยความจำ(Memory, Harddisk เป็นตัน) ในเรื่องนี้ Resource ของผมหมายถึงหน่วยความจำนะครับ ที่แต่ละ Thread หรือ Process เข้าไปจองไว้ เพื่อให้งานในช่วงเวลาหนึ่งนะครับ

Manage Resource คือ อะไร ?

คือ ทรัพยากรที่เราสามารถจัดการได้ ได้แก่ Code ที่เขียนด้วย .Net Library ที่ตัว CLI สามารถเข้าถึงว่ามี Method อะไร มี Stack Call อย่างไร เป็นต้น ซึ่งมีน GC (Garbage Collect) นั้นสามารถที่จะจัดการได้ โดยเราอาจจะเรียกอีกอย่างเป็น Managed Memory

Unmanage Resource คือ อะไร ?

คือ ทรัพยากรที่เราไม่สามารถจัดการได้ ได้แก่

  • Code ที่ไม่ได้เขียนบน Library ของ .Net เช่น Dll ที่สร้างมาจาก VB6 หรือ C++ เป็นต้น
  • Network Connection
  • Database Connection
  • การจัดการพวก I/O หรือ File
  • การจัดการกับกราฟฟิกไฟล์พวก Bitmap เป็นต้น

แล้วเรารู้ไปเพื่ออะไร ?

เพื่อทำให้ Application ที่เราเขียนขึ้นมีประสิทธิภาพ กิน Resource น้อย และทำงานได้ตามวัตถุประสงค์ของมันครับ ^____^

ResourceManager


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.