php-timer

php 运行状态报告工具
授权协议 MIT
开发语言 PHP
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 国产
投 递 者 施永贞
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

最近写了一个异步mysql客户端的封装,想与传统的串行方式做下性能对比。包括运行时间、内存使用情况等信息。在github和packagist上搜索并没有找到自己想要的,xhprof又太大了,结果也太复杂,不符合现在的需要。所以决定自己写一个package,来实现对php脚本运行时间和内存使用情况的监控,并生成报告。

示例代码: 

requiredirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR .'vendor'. DIRECTORY_SEPARATOR .'autoload.php';

//初始化,设置内存单位
$timer=new\Jenner\Timer(\Jenner\Timer::UNIT_KB);
//记录a状态
$timer->mark('a');
sleep(2);
//记录b状态
$timer->mark('b');
sleep(3);
//记录c状态
$timer->mark('c');
sleep(4);
//记录d状态
$timer->mark('d');
//打印总体报告(不包含差值)
$timer->printReport();
//获取总体报告,返回数组
$report=$timer->getReport();
//获取一个mark的报告
$a_report=$timer->getReport('a');
print_r($a_report);
//打印a状态和b状态的差异信息,包含运行时间、使用内存等
$timer->printDiffReportByStartAndEnd('a','b');
//获取a状态和b状态的差异报告
$ab_diff_report=$timer->getDiffReportByStartAndEnd('a','b');
//打印第一个mark和最后一个mark之间的差异信息
$timer->printDiffReport();
//获取第一个mark和最后一个mark之间的差异信息
$diff_report=$timer->getDiffReport();

输出结果:  

 ------------------------------------------
mark:a
time:1437535424.9998s
memory_real:1280KB
memory_emalloc:833.046875KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
------------------------------------------
mark:b
time:1437535427s
memory_real:1280KB
memory_emalloc:834.2265625KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
------------------------------------------
mark:c
time:1437535430.0002s
memory_real:1280KB
memory_emalloc:835.1875KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
------------------------------------------
mark:d
time:1437535434.0004s
memory_real:1280KB
memory_emalloc:836.1484375KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
Array
(
    [time] => 1437535424.9998
    [memory_real] => 1310720
    [memory_emalloc] => 853040
    [memory_peak_real] => 1310720
    [memory_peak_emalloc] => 863528
)
------------------------------------------
mark:[diff] start_mark:a end_mark:b
time:2.0001850128174s
memory_real:0KB
memory_emalloc:1.1796875KB
memory_peak_real:0KB
memory_peak_emalloc:0KB
------------------------------------------
mark:[totaldiff]
time:9.0006000995636s
memory_real:0KB
memory_emalloc:3.1015625KB
memory_peak_real:0KB
memory_peak_emalloc:0KB
  • 软件介绍 最近写了一个异步mysql客户端的封装,想与传统的串行方式做下性能对比。包括运行时间、内存使用情况等信息。在github和packagist上搜索并没有找到自己想要的,xhprof又太大了,结果也太复杂,不符合现在的需要。所以决定自己写一个package,来实现对php脚本运行时间和内存使用情况的监控,并生成报告。 示例代码:requiredirname(dirname(__FILE__

  • 相关:http://edn.egret.com/cn/index.php/article/index/id/154 1. Timer 的使用方法非常简单,我们只需要关心两个属性,三个方法和两个事件即可。 两个属性分别是 delay 与 repeatCount ,两个属性分别表示每次间隔的时间(以毫秒为单位)和执行的次数(如果次数为0,则表示不停的执行)。 关心的三个方法为 start 、 rese

  • 有时候我们需要测算一段代码的执行时间,我们自然可以自己存一个变量,计算执行前和执行后的时间戳,但是不免有些粗糙。 有这样一个库,可以很方便地实现这个效果: 基本使用 require __DIR__ . '/vendor/autoload.php'; use SebastianBergmann\Timer\Timer; $timer = new Timer; $timer->start();

  • 函数tick:设置一个间隔时钟定时器,这个定时器会持续触发 函数after():在指定的时间后执行函数。一次性定时器,执行完成后会自动销毁。 函数clear():使用定时器 ID 来删除定时器。(只作用于当前进程) 函数clearAll():清除当前 Worker 进程内的所有定时器。 函数info():返回 timer 的信息 函数list():返回定时器迭代器, 可使用foreach遍历全局所

  • 环境说明: 系统:Ubuntu14.04 (安装教程包括CentOS6.5) PHP版本:PHP-5.5.10 swoole版本:1.7.7-stable Github地址:https://github.com/LinkedDestiny/swoole-doc 1.Timer定时器 在实际应用中,往往会遇到需要每隔一段时间重复做一件事,比如心跳检测、订阅消息、数据库备份等工作。通常,我们会借助PH

  • timer处理 在Libevent源码分析-event处理流程中,使用了定时器,来看一下源码: evtimer_set(&ev, time_cb, NULL);//设置定时器事件 其中evtimer_set是个宏定义 #define evtimer_set(ev, cb, arg) event_set((ev), -1, 0, (cb), (arg)) //event_set原型 void

  • php Timer 页面运行时间监测类,可按不同key监测不同的运行时间 Timer.class.php<?php /** Timer class, 计算页面运行时间,可按不同key计算不同的运行时间 * Date: 2014-02-28 * Author: fdipzone * Ver: 1.0 * * Func: * public start 记录开始时间 * public end 记录结束时

  • 风信建站Laravel项目开发过程中,在初始化项目过程中This package requires php ^7.1.3 but your PHP version (7.0.12) does not satisfy that requirement错误的解决方法: 分析:以下错误为php版本太低导致,所以我们需要清理composer.lock文件。 解决方法是: 删除 composer.lock

  • 本文实例讲述了php实现的Timer页面运行时间监测类及其用法,是一款非常实用的PHP类文件。分享给大家供大家参考。具体分析如下: 该php Timer页面运行时间监测类,可按不同key监测不同的运行时间。 Timer.class.php类文件如下: /** Timer class, 计算页面运行时间,可按不同key计算不同的运行时间 * Date: 2014-02-28 * Author: fd

  • ### 问题描述 在进程池\Swoole\Process\Pool中使用swoole_timer_tick创建一个定时器,创建的位置为onWorkerStart回调中,创建后能得到定时器ID,并且调试信息为[2020-06-24 16:37:14 @15451.0]TRACEswTimer_add(:198): id=1, exec_msec=1000, msec=1000, round=0, e

  • php Timer 页面运行时间监测类,可按不同key监测不同的运行时间 Timer.class.php /** Timer class, 计算页面运行时间,可按不同key计算不同的运行时间 * Date: 2014-02-28 * Author: fdipzone * Ver: 1.0 * * Func: * public start 记录开始时间 * public end 记录结束时间 * p

  • 2012-01-04 15:53:35 0 I would like to ask some idea or solutions on how to make a count down timer in PHP. My page automatically refresh every minute using meta refresh so client side count down timer

  • 一、需求 1、进程启动时onWorkerStart()里有一个Timer定时器,我想把$worker->id进程ID传递到另一个Demo类的run()方法里。 <?php namespace app\kj\controller; use think\worker\Server; use Workerman\Lib\Timer; use app\kj\controller\Demo; class

 相关资料
  • 运行状态 添加激活注册中心后,可以查看当前注册中心所有运行实例信息。 可以通过操作按钮对运行实例进行熔断与恢复操作。 可以查看所有从库信息,并进行从库禁用与恢复操作。

  • 本文向大家介绍Android App后台服务报告工作状态实例,包括了Android App后台服务报告工作状态实例的使用技巧和注意事项,需要的朋友参考一下 本节讲运行在后台服务里的工作请求,如何向发送请求者报告状态。推荐用LocalBroadcastManager发送和接收状态,它限制了只有本app才能接收到广播。 从IntentService汇报状态 从IntentService发送工作请求状态

  • 问题内容: 我收到以下错误: 我的地图工作。但是, 我不想增加hadoop杀死不报告进度的任务之前的默认时间 ,即 相反,我想无论是使用定期汇报工作进度,或者或者类似的东西。但是,这仍然导致该作业被杀死。这是我尝试报告进度的代码段。映射器: Optimiser类中的optimiseFurther方法: 映射器的输出显示状态正在更新: 但是,在默认时间后,该作业仍被终止。我是否以错误的方式使用上下文

  • 我使用maven-surefire-plugin内置功能使用了Flaky测试重新运行机制。此外,我还基于而不是添加了cucumber依赖项。它们都有自己版本的cucumber-java和cucumber-jvm依赖项。 现在,我需要另一个运行程序,其中包含以下代码(根据StackOverflow上的其他论坛和线程) 但我不需要有这个第二个跑者,因为重新运行机制工作绝对出色,只有一个跑者在顶部。ma

  • 1. 设备状态主动推送 1.1. 流程说明 1.2. AcceptGrant 指令 1.3. 推送消息类型 1.4. Q&A 1.4.1. 如何开启此功能? 1.4.2. 老用户如何迁移? 1.4.3. 当 access_token 失效并且 refresh 不成功时,该如何做? 1.1. 流程说明 在开放平台-智能家居-品牌管理-权限管理中开启上报设备状态开关。此时会得到平台分配的 client

  • 程序运行状态 对于用户程序而言,中断的处理应当是不留任何痕迹的:只要中断处理改动了一个寄存器,都可能导致原本正在运行的线程出现错误。因此,在处理中断之前,必须要保存所有可能被修改的寄存器,并且在处理完成后恢复。因此,我们需要保存所有通用寄存器,sepc、scause 和 stval 这三个会被硬件自动写入的 CSR 寄存器,以及 sstatus。因为中断可能会涉及到权限的切换,以及中断的开关,这些

  • 我想报告应用程序的健康状态作为一个衡量标准,我希望使用相同的健康指标作为Spring启动执行器,但是,我没有看到任何可导出的组件从Spring启动执行器的依赖关系,我可能能够在这里使用。 我想编写的代码: 当然,不是导出的bean。Spring启动执行器是否导出我可以以这种方式消费的bean?

  • 有什么办法可以做到吗? 我在考虑调用一些Azure REST API作为Jenkins中的构建后操作,但是似乎没有API允许设置提交的状态,也没有API允许为从未由Azure DevOps本身启动的构建插入数据。