ช่วงสองสามวันนี้ผมพยายาม optimize ตัวโปรแกรม KnowledgeVolution ให้สามารถรองรับผู้ใช้จำนวนประมาณ 500 requests ต่อวินาทีได้ (เรียกว่าเรามี load ประมาณ 0.002 คือ 1/500 นั่นเอง) และได้ผลเป็นที่น่าพอใจครับ

Ruby on Rails เป็น framework ที่ช่วยในการพัฒนาโปรแกรมได้เร็ว แต่มีข้อจำกัดที่จะได้ระบบที่ค่อนข้างช้า สอบถามไปทางพรรคพวกที่อเมริกาก็บอกมาคำเดียวว่าเปลี่ยนเครื่องแม่ข่ายสิ เพราะการพัฒนาซอฟท์แวร์ปัจจุบันเราจะเน้นความเร็วในการพัฒนาครับ เรื่องความเร็วของการทำงานนั้น เรามองไปที่การใช้ hardware ที่เร็วขึ้นแทน เพราะ hardware ปัจจุบันนั้นถูกมาก เครื่องแม่ข่ายที่ดีจริงๆ นั้น ราคาอยู่ที่หลักแสนบาท ไม่ใช่ล้านบาทอย่างในอดีต แต่ค่าจ้างโปรแกรมเมอร์นั้นแพงกว่าในอดีตเยอะมาก

เรื่องการเปลี่ยนเครื่องแม่ข่ายนั้นเราจะเปลี่ยนอยู่แล้ว แต่ในตอนนี้เราอยากให้ระบบที่ทำงานอยู่ในเครื่องปัจจุบันสามารถรองรับผู้ใช้ปกติได้ เครื่องแม่ข่ายที่เราใช้อยู่ปัจจุบันนั้น เราไม่ค่อยอยากจะเรียกว่าเครื่องแม่ข่ายเท่าไหร่ เพราะมันคือเครื่อง desktop ธรรมดาๆ นี่เอง เป็นเครื่อง Pentium 4 ความเร็ว 3.0GHz มีหน่วยความจำ 2GB และมี hard disk แบบ IDE ขนาด 80GB อยู่สองตัว เรียกว่าเครื่อง desktop ใหม่ๆ ที่หลาย คนใช้อยู่เผลอๆ จะทำงานได้เร็วกว่าครับ

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

KnowledgeVolution ยังมีส่วนให้ optimize อีกมาก ยิ่ง optimize ความเร็วก็จะยิ่งเพิ่มขึ้นใน hardware ปัจจุบัน นอกจากนี้อีกไม่นานเราจะเปลี่ยนไปใช้เครื่องแม่ข่ายของจริง วันนั้น GotoKnow.org รับประกันความเร็วไม่แพ้ site ไหนๆ แน่นอนครับ