koalamer / tideways-xhprof-free-scheduler
Tideways Xhprof扩展免费版的集成便利类。
Requires
- php: ^7
This package is not auto-updated.
Last update: 2024-09-21 00:25:29 UTC
README
一个小的辅助类,用于将免费版的Tideways XHProf扩展版集成到您的代码中。
如何使用
设置tideways_xhprof扩展
您可以在github.com/tideways/php-xhprof-extension找到源代码、预编译包以及安装说明。
在脚本中使用类名
您可以让类自动加载,但如果您希望在测量中包含自动加载过程,则应直接包含源文件,并在包含自动加载器之前开始分析。
use koalamer\Tideways\TidewaysXhprofFreeScheduler;
设置分析启动的频率
设置值为X将导致有1/X的概率启动分析。设置小于1将导致分析器永不启动。默认值是0,表示不进行分析。
TidewaysXhprofFreeScheduler::setStartingChanceDivisor(100);
启动实际分析
init()调用将使用起始机会除数的当前值来确定是否实际启动分析。
一旦启动分析,后续调用将不执行任何操作。
例如:在单个入口点场景中,您可以设置全局的低起始机会,调用init(),然后为运行频率较低的代码(模块/例程/操作)设置更高的起始机会,并再次调用init()。这样,您可以在通常有较低分析机会的代码部分捕获分析信息,同时仍保留全局设置,而不会相互干扰。
如果tideways_xhprof扩展没有加载,调用将返回false,否则返回true。
TidewaysXhprofFreeScheduler::init()
通过定义分段维度来设置日志文件路径
您可以通过定义分段来设置日志文件路径。每个分段级别对应一个目录级别。您提供的键值对仅在分析停止时评估,因此您可以在代码中定义和重新定义分段级别。
当脚本关闭时,分析停止。然后对分段参数进行排序并压缩,因此您使用的键很重要。
如果您提供的值是空字符串,则该值将被替换为字符串"empty"。
例如,定义以下分段
TidewaysXhprofFreeScheduler::setSegmentation("1-host", gethostname()) TidewaysXhprofFreeScheduler::setSegmentation("3-module", "awesome-module") TidewaysXhprofFreeScheduler::setSegmentation("2-day", date("Y-m-d")) TidewaysXhprofFreeScheduler::setSegmentation("0-root","/tmp") TidewaysXhprofFreeScheduler::setSegmentation("4-action","")
将导致日志文件路径"/tmp/some-hostname/2020-11-03/awesome-module/empty/"。
写入日志文件
当内部单例类实例被销毁时,分析停止,因此这是自动的。
日志文件名本身将是类似"20201103_064423_032472.json"的当前时间,形式为日期、时间和微秒。
根据需要创建日志路径目录以容纳日志文件。
读取分析日志
要评估生成的日志,请使用可在github.com/tideways/toolkit找到的Tideways Toolkit。