Process เร็วได้ด้วย cache

Written on April 17, 2008 – 2:17 am | by admin |

ไม่แน่ใจว่ายังจำที่ผมเขียนเรื่องการเขียนสคริปจับเวลา Process หน้าเว็บได้อยู่ไหม? หากจำไม่ได้ก็ลองย้อนไปดูที่ http://www.myblog.in.th/?p=193 นะครับ

ตอนนี้ผมกำลังออกแบบหน้าเว็บ Mocyc ใหม่ และออกแบบหน้าเว็บทั้งหมดด้วยการสร้าง Cache File เพื่อลดภาระการอ่านข้อมูลจากดาต้าเบส ให้ลดลง เพื่อเพิ่มประสิทธิภาพในการประมวลผล และ รองรับ Process ให้มากยิ่งขึ้น

อันนี้เป็นผลของ CMusedcar.com ซึ่งไม่ได้มีระบบ Cache เลย (อนาคตผมคิดว่าจะเขียนลงไป)

process-01.jpg
0.0336 วินาทีในการประมวลผลหน้าเว็บ

ลองมาดูที่ผมทำหน้าเว็บใหม่ของ Mocyc.com ดูบ้าง

process-03.jpg
การประมวลผลครั้งแรกเพื่อสร้าง Cache

process-02.jpg
การประมวลผลเมื่อสร้าง Cache เสร็จแล้ว

จากในรูป จะมี 2 รูปนะครับ รูปแรกเป็นการประมวลผลในขณะที่ไม่มี  Cache หรือว่า Cache หมดอายุ จะเห็นได้ว่าการประมวลผลเยอะกว่าเมื่อสร้าง Cache แล้วหลายเท่าตัวเลยทีเดียว สมมุติว่าใน 10 นาทีมีคนเปิดหน้าเว็บผม 1000 ครั้ง จะมีแค่ 1 ครั้งเท่านั้นที่ใช้เวลา 0.0169 วินาที อีก 999 ครั้งจะใช้เวลาแค่ 0.0012 วินาทีเท่านั้น

ซึ่งการสร้าง Cache นั้นก็มีหลายวิธี แล้วแต่คนเขียนโปรแกรมจะถนัด ตั้งแต่ การสร้างเป็น XML การสร้างเป็น Text File หรือแบบสร้างเป็น HTML ไว้

ซึ่งผมเลือกสร้างให้เป็น HTML ไฟล์ โดยเก็บข้อมูลทั้งหมดเป็น HTML สำเร็จไปเลย แล้วก็นำมา Include เข้าหน้าที่ต้องการแสดงไปเลย เพราะเราไม่ต้องมานั่งเขียนโปรแกรมเพื่อแปลง หรือ อ่านค่า XML ต่างๆมาแสดงอีก

ผมก็ใช้วิธี อ่านดาต้าเบส จากนั้นก็ทำการสร้างข้อมูลต่างๆลงในไฟล์ HTML ไปเลย จากนั้นก็กำหนดเวลาว่าจะให้สร้าง Cache ใหม่ทุกๆกี่นาที แล้วค่อยติดต่อดาต้าเบสอีกครั้ง ซึ่งทำให้เครื่องทำงานได้เบาลงมากๆครับ และรองรับ Process ได้มากขึ้นอีกด้วย

มาต่ออีกหน่อย เห็นเคยมีหลายๆคนใช้ CMS ประเภท Nuke แล้วบ่นว่า Server รับไม่ไหว ทั้งๆที่คนเข้าเว็บก็ไม่ได้มากมายอะไรเลย ลองมาดูเวลาในการ Process หน้าเว็บดูกันครับ

process-04.jpg
ใช้เวลาตั้ง 0.83

process-05.jpg
อันนี้ก็ 0.2132 แหน่ะ

ทำไมต้องสนใจค่านี้หล่ะ ก็ลองมาเทียบๆกันดูนะครับว่าหากมีการประมวลผลเว็บไซต์ใน 1 ครั้งเนี่ยใช้เวลาไปเท่าไหร่ อย่าง 0.83 ก็เท่ากับว่า 1 คนที่เปิดหน้าเว็บก็แทบจะใช้เวลาหมดไปใน 1 วินาทีแล้ว แต่หากเทียบกับการประมวลผลที่ 0.0012 ใช้เวลาน้อยกว่ากันกว่า 100 เท่าเลยทีเดียว

ดังนั้นหากมีคนเข้าพร้อมๆกันใน 1 วินาที ยิ่งเวลา Process น้อยเท่าใดก็จะทำให้รองรับคนเข้าชมพร้อมๆกันใน 1 วินาทีได้มากขึ้นเท่านั้น

  1. 2 Responses to “Process เร็วได้ด้วย cache”

  2. By นกแอร์ on Apr 19, 2008 | Reply

    สรุปแล้วก็คือเราเขียนโปรแกรมให้สร้างไฟล์ไว้ เช่นเขียนโปรแกรมให้สร้างไฟล์ html สำเร็จไว้เลย จากนั้นเมื่อมี request เข้ามาก็ให้ส่ง html ที่สร้างเสร็จแล้วนั้นกลับไปหรือครับ? ไม่ต้องไป generate หน้าเวปทุกครั้งไป ใช่หรือเปล่าครับ? วิธีนี้ก็น่าสนใจอยู่ครับ

  3. By admin on Apr 19, 2008 | Reply

    ครับถูกต้องครับ
    สร้างเป็น html เอาไว้
    เพราะยังไงซะ html เพียวๆ ก็รันได้ไวกว่ามีการประมวลผล php อยู่แล้วครับ

You must be logged in to post a comment.

Editor's Talk!

สวัสดีคนที่หลงเดินทางเข้ามายัง Blog ของผม อาจจะด้วยความไม่ตั้งใจ หรือ ตั้งใจเข้ามาก็ตาม ก่อนอื่นผมก็ต้องขอออกตัวก่อนว่า Blog ของผมมันจะมีสาระบ้าง หรือ ไม่มีสาระเลย ก็แล้วแต่อารมณ์ช่วงไหนอยากเขียนอะไร อย่าเหมาว่า Blog ผมจะต้องมีแต่ความรู้เหมือน Blog ของคนอื่นๆ นะครับ
สำหรับ Blog นี้ ผมสามารถใช้คำพูดใดๆก็ได้ตามที่ผมเห็นสมควร เพราะมันคือ Blog ของกู(ผม) บางครั้งผมเขียนไปกระทบใครก็ขออภัยไว้ ณ. ที่นี้ด้วย ก็ไม่มีอะไรมากครับ ขอบคุณที่เข้ามาอ่าน Blog ของผมนะครับ

นายแม็ค

ค้นหา :