ในระบบการประมวลผลของ script ไปเป็น op code เพื่อให้เร็วขึ้น จึงมีการ cache ตัว op code เหล่านั้นเพื่อลดการทำงานในส่วน interpreter ลง ทำให้ระบบโดยรวมทำงานได้เร็วขึ้น
ใน PHP ก็มีการคิดตัว cache op code เหล่านี้จำนวนหนึ่ง เท่าที่ผมใช้เองเท่าที่จำได้ก็มี eAccelerator , APC , xCache ล่าสุดนี้ก็คือ OpCache ของ Zend
โดยตัว OpCache นี้ทาง Zend ได้เขียนขึ้นมาใหม่ รองรับตั้งแต่ PHP 5.2 เป็นต้นมา และเป็น default ใน PHP 5.5.0
ส่วนประสิทธิภาพผมเองเพิ่มติดตั้ง PHP 5.5 และเป็น OpCache ไปลองเครื่องเดียว ยังไม่มีเวลาทดสอบ และทาง MassiveScale ได้ทำการทดลองไว้แล้ว โดยเป็นผลการทดลอง OpCache และ xCache ร่วมการผลแบบไม่มี Cache ใดๆ ขอเอาผลมาดูเลยแล้วกัน
Response time ที่ 99% CPU usage
- ไม่มี Cache ใช้เวลา 7,420 ms
- xCache ใช้เวลา 3,179 ms
- OpCache ใช้เวลา 2,780 ms
จำนวน Request ต่อวินาที
- ไม่มี Cache รองรับได้ 5.73 reqs
- xCache รองรับได้ 12.99 reqs
- OpCache รองรับได้ 15.19 reqs
จะเห็นว่าผลการใช้ OpCache เพิ่มความเร็วของ response time มากกว่าไม่มี Cache ถึง 62.5% และมากกว่า xCache ถึง 12.5%
และเพิ่มประสิทธิภาพการของรับ request ได้เพิ่มขึ้นมากกว่าไม่มี Cache ถึง 265% และมากกว่า xCache ถึง 117%
ส่วนรายละเอียดการทดลอง และผมการทลองต่างๆ ติดตามได้ที่ blog ของทาง MassiveScale ได้ที่ http://massivescale.blogspot.com/2013/06/php-55-zend-optimiser-opcache-vs-xcache.html