xdebug 使用 tips
平时常用 xdebug 追踪 php 的错误信æ¯(stack trace),还有一个所谓的 profiling ,就是统计并ä¿å˜å‡½æ•°(包括 php 函数和自定义函数)çš„æ‰§è¡Œæ—¶é—´ï¼Œå†…å˜æ¶ˆè€—以åŠå‚æ•°ç‰æƒ…况都å¯ä»¥è®°å½•,但是开销更大,一般ä¸è¦è®°å½• 。
设置如下
——————–
zend_extension = /usr/local/php/extensions/xdebug.so
xdebug.default_enable = Off
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = “/data/xdebug/”
xdebug.profiler_output_name=trace.%R.txt
xdebug.profiler_enable = Off
——————–
这个设置关掉了 stack trace ,profiling 功能,åªåœ¨ http è¯·æ±‚ä¸æœ‰ XDEBUG_PROFILE (GET/POST/COOKIE) 的时候,æ‰ç»Ÿè®¡å‡½æ•°æ‰§è¡Œæƒ…况并ä¿å˜æˆæ–‡ä»¶ã€‚å¦‚æžœä¸ disable 上é¢çš„功能,è¿è¥æœåŠ¡å™¨å¾ˆå®¹æ˜“æŒ‚æŽ‰ã€‚ä»¥ä¸Šè®¾ç½®ä»¥åŽï¼Œ http 进程大概需è¦å¤šæ¶ˆè€— 1-2M 内å˜ï¼ŒCPU 消耗也ä¸å¤§ã€‚平时没有必è¦åŠ è½½ xdebugï¼Œæ—¶ä¸æ—¶åŽ»è§‚å¯Ÿä¸‹ï¼Œéšæœºç»™å‡ 个用户的 COOKIE é‡ŒåŠ ä¸ª XDEBUG_PROFILE æ˜¯å¾ˆå¥½çš„ä¹ æƒ¯ã€‚
关于生æˆçš„ log 文件,windows 下以å‰ä¸€èˆ¬ç”¨ wincachegrind æ¥çœ‹ï¼Œä½†æ˜¯ xdebug2 æŸä¸ªç‰ˆæœ¬ä»¥åŽï¼Œä¿®æ”¹äº†ç”Ÿæˆæ–‡ä»¶çš„æ—¶é—´å•ä½ï¼Œç›´æŽ¥ç”¨ wincachegrind 看时间会少一个数é‡çº§ã€‚建议用 http://code.google.com/p/webgrind/ æ¥çœ‹ã€‚
其实还有一个想法,完全å¯ä»¥å€Ÿç”¨ webgrind 的相关代ç ï¼Œå†™ä¸€ä¸ªè„šæœ¬åˆ†æžæ‰§è¡Œæ—¶é—´æ»¡è¶³ä¸€å®šè¦æ±‚的请求的情况。需è¦çš„è¯ï¼Œå®‰æŽ’一个 crontab, 定时记录下 profiling log , 定时分æžä¸‹ç¨‹åºå“ªäº›åœ°æ–¹æ‰§è¡Œæ¯”较慢。
