php调试利器之phpdbg
简介 PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境。 PHPDBG的目标是成为一个轻量级、强大、易用的PHP调试平台。可以在PHP5.4和之上版本中使用。在php5.6和之上版本将内部集成。 主要功能: - 单步调试 - 灵活的下断点方式(类方法、函数、文件:行、内存地址、opcode) - 可直 ...
简介 PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境。 PHPDBG的目标是成为一个轻量级、强大、易用的PHP调试平台。可以在PHP5.4和之上版本中使用。在php5.6和之上版本将内部集成。 主要功能: - 单步调试 - 灵活的下断点方式(类方法、函数、文件:行、内存地址、opcode) - 可直 ...
简介 valgrind是开源的性能分析利器。 根据它的文档,可以用它来检查内存泄漏等问题,还可以用来生成函数的调用图,就这两个功能就足够有吸引力了。 本文主要是介绍如何使用valgrind的callgrind工具进行性能分析。 分析过程 使用callgrind工具生成性能分析数据 命令格式如下: valgrind --tool=callgrind ./exproxy ...
背景 最近给XX项目搭建一个反垃圾平台。效果不错,但是出现了一个诡异的事情。离线扫描部分会有一个常驻的php进程,以便处理发现的垃圾信息。常驻的php进程总是诡异的退出。php代码示例如下: <?php while(1){ $content = fgets(STDIN); if(empty($content)){ sleep(1); } //逻辑处理部分 ...
mysqlnd是个好东西。不仅可以提高与mysql数据库通信的效率,而且也可以方便的设置一些超时。如,连接超时,查询超时。 但是,使用mysqlnd的时候,有个地方需要注意。就是服务端的密码格式不能使用旧的16位的存储格式,而要使用新的41位的存储格式。 如果,服务端的密码格式是16位,那么就会报错。信息如下: Fatal erro ...
最近再写一个hsf的代理程序。需要使用libcurl与后端的nginx通信。程序编写过程中遇到一个蹊跷的问题。 调用 code = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &rsp_code); 后会报段错误。 示例代码如下: static int http_proxy(std::string domain, std::string path, std::string params, std::string & ...
现象: 今天线上一台服务器的php打算升级到php5.5,导入流量后,在php的error log中出现了一些 glibc delected错误。 如: *** glibc detected *** ./test: double free or corruption (fasttop): 0x00000000049cc010 *** 原因: 重复free 示例: #include"stdio.h" #include "stdlib.h" #include ...
前段时间,出现了一次服务器cpu 占用100的问题。以下为追查原因的过程。仅当抛砖引玉,欢迎拍砖。 查看占用cpu高的进程 想找出占用cpu高的进程,用top命令就可以搞定。 $top .....此处省略n多行... 10434 root 20 0 509m 174m 1528 R 99.7 0.5 8:42.43 php ...
我们一般修改php的配置项都是在php.ini中修改。在php,ini中的修改会影响到所有使用php的程序。假如我想让修改只在某个域名下生效,该如何做呢? 使用ini_set() 首先想到的可能是使用ini_set()方法在脚本中修改。但是这个只能修改作用域为PHP_INI_USER和PHP_INI_ALL的配置项。具体配置项作用域说明请查看 PHP配置指令作用 ...
PHP总共有4个配置指令作用域,分别是PHP_INI_USER,PHP_INI_PERDIR,PHP_INI_SYSTEM,PHP_INI_ALL。这些作用域限制了指令是否可以被修改,在那里可以被修改。php的每个配置项都会有一个作用域。下面是对四种作用域的说明。 作用域类型 说明 PHP_INI_USER 可在用户脚本(如 ini_set())或Windows注册表(PHP 5 ...
顾名思义,xhprof gui 就是一个xhprof的一个ui展现。作者hack了facebook发布的xhprof展现代码。使xhprof界面更漂亮,功能更强大。 xhprof gui新增了如下特性: * 友好的界面 * 数据库存储(mysql) * 支持按请求百分比执行xhprof优化。降低服务器负载。 * 支持相似url的概念。如:http://news.example.com/?story=23 ht ...
趣题: 下面的几段代码分别输出true or false? 第一个: <?php $key=1; var_dump($key == " \t01ab"); ?> 第二个: <?php $key='1'; var_dump($key == " \t01ab"); ?> 第三个: <?php $key=0; var_dump($key == " \t01ab"); ?> 第四个: <?php $key=0; va ...
当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段。然后,再仔细分析有问题的代码段,从而找出原因。 如果你的程序使用的是c、c++编写,那么你可以很容易的找到正在执行的代码行。但是,程序是php编 ...