当前文章被分类为:php

igbinary vs serialize vs json_encode

最近看到memcached扩展支持额外的序列化方式 — igbinary,这是一个未收录到pecl的php扩展,它提供的两个主要方法:

igbinary_serialize

阅读全文(1557字)

评论 (16)

试着开源LiteCloud项目

所谓LiteCloud,无非就是前些天提到的LightCloud的php版本实现。这个和原来的python版本有一些区别,会造成不兼容,如下:

把Consistent Hashing算法换成了ketama,在pecl的memcached扩展里有简单方法可以实现,效率比单纯的php好很多,能快个10倍吧。没有重复造轮子,因此我很是得意。

阅读全文(1844字)

评论 (4)

使用nginx做为hiphop-php的前端服务器

在邮件组里看到有人问能不能把多个hiphop-php编译后的程序跑在同一个端口上,想想也是合理的要求。如果一个服务器上跑了多个站点,那肯定都得用80端口,当大家共同租用服务器的时候,这个需求更为强烈。当时我所想到的解决办法是在前面搭个nginx之类的做代理,实际编译后的程序跑在别的端口,然后没过几天就看到了这份wiki – Using nginx as front server to HipHop。
简单的nginx配置示例
/etc/nginx/conf.d/ooso.conf:

阅读全文(813字)

评论 (5)

快速安装hiphop-php的捷径

不得不说,现在安装hiphop-php实在是太麻烦了,如果有rpm包一次搞定那该多好?就说周边那些零散的依赖库,也有不少安装比较繁琐的硬骨头。
Centos用户的好消息
Update: 在centos 64位机上完全通过rpm安装hiphop-php的步骤也已经提供了。
在邮件组上看到有人提供了centos下安装hiphop相关的rpm列表,把这些rpm装好,再按照wiki上专心编译hiphop即可。也许再过一阵,就会有人直接提供hiphop的rpm包,那就彻底方便了。

阅读全文(818字)

评论 (9)

初次体验hiphop-php

昨天facebook在github上发布了hiphop-php的源代码。之前听说这玩意能把php代码翻译成c++代码,然后带来巨大的性能提升,所以第一时间编译了一份hiphop-php。
我的机器环境是

Centos 5.3 x86_64

阅读全文(1052字)

评论 (21)

快速创建pear/pecl的rpm

目前使用的服务器为centos,使用yum以及rpm来维护系统好处多多:

安装卸载,升级rpm软件包只需一条命令即可

阅读全文(535字)

评论

memcache连接慢又一例

继上次解决memcache连接慢问题以来,好长一段时间没在这个问题上翻过跟头。这一次我又在生产环境观察到php和memcache的连接时间经常会在50ms以上。
作为一个cache,占用了这么长的执行时间,天理何在?
实际的运行环境如下:

阅读全文(699字)

评论 (2)

php的echo为什么这么慢

作为一个行走江湖多年的老中医,今天受命去解决一例前端页面展现缓慢的问题。问题页的情况如下:

apache + php

阅读全文(820字)

评论 (13)

在生产环境中使用php性能测试工具xhprof

xhprof是facebook开源出来的一个php性能测试工具,也可以称之为profile工具,这个词不知道怎么翻译才比较达意。跟之前一直使用的xdebug相比,有很多类似之处。以前对xdebug有一些记录还可以供参考,但是它的缺点是对性能影响太大,即便是开启了profiler_enable_trigger参数,用在生产环境中也是惨不忍睹,cpu立刻就飙到high。
而xhprof就显得很轻量,是否记录profile可以由程序控制,因此,用在生产环境中也就成为一种可能。在它的文档上可以看到这样一种用法:

阅读全文(782字)

评论 (14)

启用memcached压缩注意事项

在php开发中,开启memcache的数据压缩存储是一件很简单的事情。在多数情况下,压缩数据不仅不会降低程序的执行效率,反倒会因为网络传输的开销降低,带来速度提升。看看最常用的Memcache::set方法:
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
在这个方法中,将$flag设置为MEMCACHE_COMPRESSED即可启用memcache压缩存储。
这样做有什么弊端?

阅读全文(1146字)

评论 (6)