ตัวแปรธรรมดา กับ session ใช้เวลาประมวลผลต่างกันหรือไม่

presentation of a student
presentation of a student

18 พ.ย.57 ได้มีการทดสอบจับเวลาในการประมวลผล
ซึ่งเป็นกิจกรรมในชั้นเรียน เกิดจากการให้นักศึกษาเรียนรู้การติดต่อฐานข้อมูลจาก microsoft access 2003 กับ 2007 ซึ่งมีสกุลเป็น .mdb กับ .accdb แล้วก็ยิงคำถามเข้าไปว่าใครตอบเร็วกว่ากัน แล้วน้องขุนตอบว่า การตอบสนองของ 2003 ต้องช้ากว่า 2007 เหมือน nokia กับ iphone6 จึงให้น้องหญิงช่วยทดสอบให้ดู พบว่า 2007 ตอบสนองช้ากว่า 2003 ซึ่งผิดไปจากที่น้องขุนตั้งสมมติฐานไว้ ซึ่งใช้โค้ดที่ผมเขียนเพื่อทดสอบการทำงานของ connection กับ recordset (dlist8) ที่ใช้ ASP Classic เป็นเครื่องมือในการพัฒนา

นักศึกษาที่ร่วมกิจกรรม มีดังนี้
ศัลณ์ษิกา ไชยกุล ทดสอบ ucase กับ left
ธนากร วงศ์ใหญ่ ทดสอบ array กับ session
ณภัทร เทพจันตา ทดสอบ sub กับ function
http://www.thaiall.com/asp/test_time.htm

วัตถุประสงค์
เพื่อ ให้ได้ตระหนักถึงการใช้คำสั่งในการประมวลผล เหมือนกับการวิจัยที่ต้องมีบทที่ 4 มายืนยัน ว่าจะทำอะไร ใช้อะไร ตัดสินใจอะไร ก็ต้องมีผลการทดสอบมายืนยัน เสมือนวรรณกรรมอ้างอิงประกอบการตัดสินใจ จึงให้นักศึกษาเขียนโปรแกรมทดสอบว่า ฟังก์ชัน หรือตัวแปรแบบต่าง ๆ ใช้เวลาประมวลผลต่างกันหรือไม่ จะได้ตระหนักเรื่องการเลือกใช้ตัวแปร ประกาศตัวแปร และพิจารณาอัลกอริทึมที่ใช้ให้ละเอียด

function con1()
dim tstart
tstart = timer
dim x
for i = 1 to 100000
x = x + 1
next
response.write(((timer – tstart) * 1000) & “ms<br/>”)
end function

function con2()
dim tstart
tstart = timer
session(“x”)=0
for i = 1 to 100000
session(“x”) = session(“x”) + 1
next
response.write(((timer – tstart) * 1000) & “ms<br/>”)
end function

ผลการทดสอบเรียกฟังก์ชันทั้งสอง ที่ทำงานต่อเนื่องกัน
บนเครื่องเดียวกันพร้อม ๆ กัน
พบว่าตัวแปรธรรมดาใช้เวลา 32 ms
ส่วนตัวแปรเซสชั่นใช้เวลาไปถึง 500 ms
ถ้าใช้ server เครื่องเก่าก็จะนานกว่านี้
ใช้เครื่องใหม่ก็จะเร็วกว่านี้

การเรียกใช้ฟังก์ชัน
con1 ‘ x ใช้เวลา 32 ms
con2 ‘ session ใช้เวลา 500 ms

Author: บุรินทร์ รุจจนพันธุ์

I am Lecturer, Developer, Researcher, Columnist, Writer, Photographer, and Webmaster - L@mpang man

Leave a Reply