Google


Tag Archive for 'Zend Optimizer'

ตั้งค่า Zend Optimizer กับ Zend Debugger ให้ทำงานพร้อมกันได้

หลายคนที่ทำงานด้าน Web Dev ที่พัฒนาบน PHP มักจะต้องใช้ Zend Debugger ไม่มากก็น้อย โดยเอาไว้ใช้ในการ Debug แบบ Realtime ในระหว่างที่ PHP กำลังทำงานอยู่ เพื่อเก็บรายละเอียดด้าน Performance ต่าง ๆ ที่ เช่น

  • php ไฟล์ที่เราเขียนอยู่มีการ access พวก include หรือ require ไฟล์ต่าง ๆ กี่ไฟล์
  • มีการเรียกใช้ object, class, method หรือ function อะไรบ้าง ไล่เรียงตาม flow ต่าง ๆ
  • ตรวจสอบว่า method หรือ function ในแต่ละตัวนั้นทำงานนานแค่ไหน เพื่อเช็ด และตรวจสอบด้านความเร็วในการทำงาน
  • เช็คพวก warning, strict, notice message ระหว่างการทำงานโดยไม่ต้องเขียน error_reporting ให้เขียนไฟล์ให้เสียเวลาทำงาน

ส่วน Zend Optimizer นี่ผมใส่ลงไปเพื่อเพิ่มความเร็วในการทำงานของ PHP เวลาทำงาน แต่มัน debug ไม่ได้ครับ แต่ทำให้ script ของเราทำงานเร็วขึ้น 10 - 30% ตามที่ Zend ได้บอกไว้ในเว็บ (แต่มันก็เร็วขึ้นจริง ๆ แหละ)

โดยทั้งสองตัวนี้มีวิธีการลงที่คล้าย ๆ กัน (เรื่องวิธีการลงหาได้ทั่วไปตาม internet ทั้ง Debugger กับ Optimizer ไม่ขออธิบายแล้วกัน) ถ้าไปสืบหาตามปกติ การตั้งค่าจะทับซ้อนกันครับ ทำให้ต้องเลือกอย่างใดอย่างหนึ่งตอนใช้งาน แต่ว่าก็มีหนทางทำให้มันทำงานได้เหมือนกันครับ

โดยเราตั้งค่าพื้นฐานโดยใช้ Optimizer ยืนพื้นไปก่อนเลย โดยชื่อไฟล์ต่าง ๆ ที่บอกมาเป็นตัว library ที่ทำงานบน Windows ครับ

CODE:
  1. [Zend]
  2. zend_extension_ts="c:/path_to_zend_optimizer/lib/ZendExtensionManager.dll"
  3. zend_extension_manager.optimizer_ts="c:/path_to_zend_optimizer/lib/Optimizer"

โดยใน c:/path_to_zend_optimizer/lib/Optimizer นั้น จะมี directory เรียงรายตาม version ต่าง ๆ ของ php ครับ โดยผมใช้ PHP 5.2.6 ครับ ก็จะใช้ directory php-5.2.x ครับ ในนั้นก็จะมีไฟล์ชื่อ ZendOptimizer.dll (ไฟล์ที่อ้างอิงคือ Windows นะครับ)

ให้เอาไฟล์ ZendDebugger.dll ที่โหลดมาจากเว็บ zend เอามาใส่ โดยเอาไฟล์จาก directory ใน .zip ไฟล์ใส่ให้ตรงกับ version ใน directory ปลายทางด้วย

แล้วตั้งค่า ต่อไปด้วยคำสั่ง

CODE:
  1. [Zend]
  2. zend_extension_ts="c:/path_to_zend_optimizer/lib/ZendExtensionManager.dll"
  3. zend_extension_manager.optimizer_ts="c:/path_to_zend_optimizer/lib/Optimizer"
  4.  
  5. [Debugger]
  6. zend_extension_manager.debug_server_ts="c:/path_to_zend_optimizer/lib/Optimizer"
  7. zend_debugger.allow_hosts=127.0.0.1/32
  8. zend_debugger.allow_tunnel=127.0.0.1/32
  9. zend_debugger.expose_remotely=allowed_hosts
  10. zend_debugger.connector_port=10001

แล้ว restart ตัว Web Server ก็จะสามารถทำให้ Zend Optimizer กับ Zend Debugger ทำงานได้พร้อม ๆ กันแล้วหล่ะครับ

โดย phpinfo แล้วจะได้ตามวงสี่เหลี่ยมสีแดงนี้ครับ

2008-05-19_211436

อ้างอิงจาก How to allow Zend Optimizer and Zend Debugger coexist