最近写了一个异步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本身启动的构建插入数据。