Wednesday, January 24, 2007

Unsafe ใน C#: ความเร็วแตกต่างกันอย่างสิ้นเชิง

เขียนโปรแกรมแปลงภาพสีเป็น GrayScale เขียนโค้ดแบบ unsafe ดังนี้

byte* p = (byte*)(void*)Scan0;
for (int y = 0; y < Image.height; y++, p+= nOffset, h += gOffset)
{
for (int x = 0; x < Image.Width; x++, p+=3, h++)
{
*h = (byte)(0.299 * p[2] + 0.587 * p[1] + 0.114 * p[0]);
}
}


ใช้เวลารัน นาน แบบเห็นได้ชัดเจน แต่พอเปลี่ยนโค้ดเป็นแบบนี้

byte* p = (byte*)(void*)Scan0;
int height = Image.height;
int width = Image.width;
for (int y = 0; y < height; y++, p+= nOffset, h += gOffset)
{
for (int x = 0; x < width; x++, p+=3, h++)
{
*h = (byte)(0.299 * p[2] + 0.587 * p[1] + 0.114 * p[0]);
}
}

ปรากฏว่าเห็นความแตกต่างเรื่องความเร็วได้อย่างชัดเจน (อันหลังเร็วกว่าอันแรกอย่างแรง)
- -"

Friday, January 19, 2007

กลับจาก รด. แล้วคร้าบ

ได้เดินป่าทุกวันที่เข้าค่ายเลย - -' ปวดขาสุดๆ ตอนด่านทดสอบกำลังใจ
เฮอๆ เหนื่อยจนอยากจะกลับบ้านเลย แต่ในที่สุดก็ผ่านมาได้ซักที

ไปนอนดีกว่า...อ้อ อีกนิดนึง...ดีใจจัง NSC ได้เข้ารอบชิงด้วย และมีน้องๆ
เข้ารอบชิงอีก 3 โครงการ ดีใจจัง

Sunday, January 14, 2007

ไปเข้าค่าย รด. ปี 3 -- 5 วัน

คงรับโทรศัพท์ไม่ได้ -- เพราะไม่ได้พกไป
ออนเอ็มคงไม่ได้ -- เพราะคงหา Internet ใช้ไม่ได้

ไว้กลับมาแล้วเดี๋ยวจะเล่าให้ฟังครับ