คนอะไร? คนเก่ง

13 MAY @ฝึกงาน

สำหรับข้อมูลที่ศึกษาได้ในวันที่ ๑๓ พ.ค.ก็ได้แก่

การทำ Garbage Collection บน Windows mobile ด้วย C#

หลักการเพิ่ม performance ของ app. บน windows mobile ด้วย.net เหมือนกับ application ทีเขียน ด้วย ,net บน app. ที่อยู่บน windows ธรรมดาคือถ้า object ตัวไหนไม่ได้ใช้ก้อจะ dispose ทิ้งไป แต่ปกติ ถ้า method ตัวไหนไม่ได้ใช้ ก้อจะมีการ destroy ด้วยตัวเองอยู่แล้ว แต่อาจจะช้าจนทำให้ performance ลดลง ซึ่งการ destroy ด้วยตัวเองนั้นมาจาก Garbage Collection (GC) ใน Destructor method

1. ถ้า object ที่เรียกใช้ มีเมธอด Dispose ให้เรียก Dispose เสมอ ถ้าเป็นไปได้ เมื่อใช้งาน object นั้นเสร็จเรียบร้อยแล้ว เช่น frm.Dispose

2. บางคลาส เตรียมเมธอด Dispose ให้ในชื่อที่สื่อความหมายและเหมาะสมกับคลาสนั้นๆ เช่นเมธอด Close ของ Connection เช่น cn.Close มีความหมายเหมือน cn.Dispose

3. แต่ถึงแม้ว่า เราไม่ได้เรียก Dispose object ที่เขียนไว้อย่างดี ก็จะเรียก Dispose ด้วยตัวเองอยู่ดีในช่วงที่ถูก destroy (ใน Destructor method) ด้วย Garbage Collection (GC)

4. เมธอด Dispose มีหน้าที่คืน Unmanaged resource ทันที (เพราะเราไม่ใช้แล้ว) ซึ่งถ้าเรารอให้ GC มา destroy object นั้น ก็อาจจะทำให้ resource นั้นถูก “จับ” (hold) ไว้นานเกินความจำเป็น และทำให้ระบบไม่ scalable (รองรับผู้ใช้จำนวนมากได้ ขยายขนาดได้) เพราะ resource มีอยู่จำกัด เมื่อถูก hold ไว้ ก็ทำให้มีเหลือน้อยลงสำหรับให้กับ object ใหม่ที่ต้องการใช้

5. การเรียก Dispose อาจจะเขียนตรงๆ เช่น obj.Dispose หรือในภาษา c# จะมีประโยค using เพื่อ Dispose object โดยอัตโนมัติ (ไม่ต้องเขียนเอง) เมื่อจบ block นั้น สำหรับใน vb.net อาจจะใช้ Try..Finally ไปก่อน เพื่อจำลองประโยค using ของ c# ก่อนที่จะมีให้ใช้ใน vb.net 2005 ด้วยประโยค Using…End Using

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s