ReactPHP,PHP版的Node.js
前言 前段时间csdn找我约稿。一直忙于项目,也没来及写。十一的时候,学习了下ReactPHP。把了解的一些东西整理成文。难免有疏漏,如发现请指正。原文已经发布到csdn。网址 http://www.csdn.net/article/2015-10-12/2825887 从名字说起 虽然ReactPHP项目已经发展了有4年之久,但是对于其称呼显得有点混乱。在开源中国为 ...
前言 前段时间csdn找我约稿。一直忙于项目,也没来及写。十一的时候,学习了下ReactPHP。把了解的一些东西整理成文。难免有疏漏,如发现请指正。原文已经发布到csdn。网址 http://www.csdn.net/article/2015-10-12/2825887 从名字说起 虽然ReactPHP项目已经发展了有4年之久,但是对于其称呼显得有点混乱。在开源中国为 ...
前言 最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能。由于facebook实现的比较早,他们不得不对php进行hack才得以实现。现在的php5.5,已经无需hack就可以实现了。 对于一个web网站的性能来说,瓶颈多半是来自于数据库。一般数据库查询会在某个请求的整体耗时中占很大比例。如果能提 ...
问题 通常一个web应用的性能瓶颈在数据库。因为,通常情况下php中mysql查询是串行的。也就是说,如果指定两条sql语句时,第二条sql语句会等到第一条sql语句执行完毕再去执行。这个时候,如果执行2条sql语句,每条执行时间为50ms,全部执行完毕可能需要100ms。既然,主要原因是sql的串行执行导致。那我们是不是可以改变 ...
简介 PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境。 PHPDBG的目标是成为一个轻量级、强大、易用的PHP调试平台。可以在PHP5.4和之上版本中使用。在php5.6和之上版本将内部集成。 主要功能: - 单步调试 - 灵活的下断点方式(类方法、函数、文件:行、内存地址、opcode) - 可直 ...
背景 最近给XX项目搭建一个反垃圾平台。效果不错,但是出现了一个诡异的事情。离线扫描部分会有一个常驻的php进程,以便处理发现的垃圾信息。常驻的php进程总是诡异的退出。php代码示例如下: <?php while(1){ $content = fgets(STDIN); if(empty($content)){ sleep(1); } //逻辑处理部分 ...
mysqlnd是个好东西。不仅可以提高与mysql数据库通信的效率,而且也可以方便的设置一些超时。如,连接超时,查询超时。 但是,使用mysqlnd的时候,有个地方需要注意。就是服务端的密码格式不能使用旧的16位的存储格式,而要使用新的41位的存储格式。 如果,服务端的密码格式是16位,那么就会报错。信息如下: Fatal erro ...
前段时间,出现了一次服务器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编 ...