dongroufan6846
2017-06-13 21:46 阅读 55
已采纳

PHP7 register_tick_function / declare只影响它声明的文件?

PHP7 register_tick_function / declare affects only file it is declared in? I used to profile in php 5.6< using register_tick_function/declare("ticks"), but inside PHP7 i always get ticks only for lines i explicitly mentioned declare construction file in, which doesnt allow me to profile whole application as php5.6 and lower allowed me.

I tried to tamper with op_cache but didnt help to any avail.

inspiration: https://kpayne.me/2013/12/24/write-your-own-code-profiler-in-php/

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    douyi0219 douyi0219 2017-06-13 22:00

    It appears that the implementation of declare was a little buggy before PHP 7.0. The declare statement is only supposed to affect the file it is in, and therefore you must add declare(ticks=1) on each file. The existing usage was buggy and was "fixed" in PHP 7.0.

    After some research, it looks like there's a comment on this in the register_tick_function documentation

    点赞 评论 复制链接分享

相关推荐