tideways + xhgui(+toolkit) php 性能分析

Posted by 夏泽民

https://github.com/tideways/php-xhprof-extension 1)PHP的xhprof扩展Facebook不再进行更新和维护,因为Faceboo已经全面使用HHVM,不再使用PHP zend引擎。 2)xhprof不支持新版本的PHP(PHP7),tideways扩展是从xhprof项目fork下来继续进行维护的,目前支持PHP 7.2, 7.1, 7.0, 5.6 and 5.5 。 3)tideways是开源项目,它收费的只是UI服务,其实 xhgui完全可以满足我们日常的需求 2 功能 tideways是用来测试PHP性能的扩展,它能获取PHP执行的整个过程中调用的函数、调用函数次数、执行时间、CPU时间、内存占用、内存峰值、总执行时间、总CPU时间、总内存占用、总内存峰值等数据,通过以上数据进行分析,找出PHP的性能瓶颈、分析PHP执行过程等。 3 优点 1)tideways是一个PHP扩展,结合xhgui,无需在PHP代码中进行埋点来监控代码 2)可以设置执行频率(例如1/100),无需每个请求都生成执行日志,从而导致性能损失;也可以主动控制是否生成执行日志,通过请求参数来控制(debug=1) 3)有简单直接的UI对数据进行转化 4)可以自由的搭配条件进行数据筛选,例如分析某个特定的接口,分析某个时间段的接口请求情况等 4 缺点 1)虽然是非侵入式的,但是如果对每个接口生成执行日志,那么对CPU和内存的消耗是不可忽略的。 2)如果在线上,header文件万一有错误改动等问题,那么将导致PHP请求无法无法正常运行。



aqs

Posted by 夏泽民

 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!



treemap HashMap和LinkedHashMap的区别

Posted by 夏泽民

HashMap:HashMap数据是无序的,根据键的hashCode进行数据的存取,对数据的访问速度非常快,在map中插入删除



gctrace

Posted by 夏泽民

如何开启打印gc信息 只要在程序执行之前加上环境变量GODEBUG gctrace =1 ,如: GODEBUG gctrace =1 ./xxxx.exe or GODEBUG gctrace =1 go run main.go 垃圾回收信息 gc 1 @2.104s 0%: 0.018+1.3+0.076 ms clock, 0.054+0.35/1.0/3.0+0.23 ms cpu, 4->4->3 MB, 5 MB goal, 4 P。



BitTorrent协议分析

Posted by 夏泽民

BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在FTP、HTTP协议中,每个下载者从FTP或HTTP服务器处下载自己所需要的文件,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于FTP服务器的处理能力和带宽的限制,下载速度会急剧下降,有的用户根本访问不了服务器。BT协议与FTP协议不同,它的特点是下载的人越多下载的速度越快,其原因在于每个下载者将已下载的数据提供给其他下载者下载,它充分利用了用户的上载带宽。BT协议通过一定的策略保证上传的速度越快,下载的速度也越快。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required