Facebook性能大提升的秘密:HipHop

转自CSDN。

clip_image002Facebook神秘的PHP项目HipHop for PHP终于揭开面纱。这个项目由一个PHP到C++的转换程序,一个重新实现的PHP运行库,和许多常用PHP扩展的重写版本构成,目的是旨在加速和优化PHP。

Facebook官方博客(无法直接访问)上项目负责人赵海平(北大1987届遗传与分子生物专业,普林斯顿计算机科学博士)的话说,HipHop项目对Facebook影响巨大。它目前已经支撑了Facebook 90%的Web流量。由于HipHop,Facebook Web服务器上的CPU使用平均减少了50%,从而大大减少了服务器的需求。为了让这一改进也惠及社区,他们决定将之开源,希望能够进一步帮助提高更多大型复杂PHP网站的可伸缩性。

继续阅读“Facebook性能大提升的秘密:HipHop”

优化timthumb.php

TimThumb是一个简洁高效的创建图片缩略图的程序。它功能非常强大,并且制定性很强。通过对多个参数的控制,你可以灵活地设置缩略图片的输出样式。

然而,有时候具体应用时,会产生一些性能问题。由于它的调用方式

<IMG alt="" src="/scripts/timthumb.php?src=/images/whatever.jpg&h=150&w=150&zc=1">

服务器可能不会自动对图片进行压缩,也不会自动添加图片的客户端缓存过期时间。下面我们来看一下如何解决这些问题。

继续阅读“优化timthumb.php”

pear mdb 数据抽象层

Write once – run anywhere
一次编写——随处运行
这是Java的一句行销口号,但是它同时也是 PHP的关键特性之一。许多商业模型依赖于操作系统无关性来保证产品能够销售给广泛的客户群体。因而,为什么要把你自己绑在某种数据库厂商的身上呢?数据库抽象层使得你能够与数据库独立的开发你的应用程序。但是,通常情况下它们对性能的影响超过了你所希望的,要么他们并不足够抽象以消除所有和特定数据库相关的代码。
这篇文章将教给我什么?
这篇文章将对数据库抽象包 PEAR MDB 有一个很好的介绍。文章的焦点将是对 MDB 超越类似包所提供的更先进的特性,例如数据类型抽象和基于 XML 的 schema 管理。对 PHP 和 SQL 的基本理解是推荐的。
继续阅读“pear mdb 数据抽象层”

用PHP5进行三层开发

原文:http://www.onlamp.com/pub/a/php/2004/12/09/three_tier.html
Three-Tier Development with PHP 5 by Luis Yordano Cruz
此文演示了PHP三层开发的强大功能,PEAR::DB_DataObject用于业务逻辑,Smarty 用于显示逻辑,这里假设你熟悉了HTML,Smarty,PEAR::DB_DataObject,Mysql和PHP5.如果你需要补充知识,下面的文章解释了一些原理:
继续阅读“用PHP5进行三层开发”

PEAR DB_DataObject 简介

DB_DataObject将数据表封装成对象,所有对数据库的操作转化为对象的操作。
使用DataObject,完全不用跟SQL打交道。特别在需要修改数据库结构的时候,例如增加或删除表和字段、改名、更改表间关系,在设计一个稍为复杂的系统时,这些情况都会经常出现。使用DataObject,只需修改很少的几个地方,不用去修改讨厌的SQL语句。再配合其它几个类,例如FormBuilder,DataGrid,就能够用很简单的几行代码实现数据输入和输出显示等复杂功能。
很多人使用DB类,因为DB类隐藏了不同数据库的差异。但是你还是要直接使用SQL语句。DataObject在DB的基础上进一步抽象,隐藏了数据库。
继续阅读“PEAR DB_DataObject 简介”

PHP的对象和类

作者:Leon Atkinson 翻译:Haohappy
第一节–面向对象编程
第二节–PHP5 的对象模型
第三节–定义一个类
第四节–构造函数和析构函数
第五节–克隆
第六节–访问属性和方法
第七节–类的静态成员
第八节–访问方式
第九节–绑定
第十节–抽象方法和抽象类
第十一节–重载
第十二节–类的自动加载
第十三节–对象串行化
第十四节–命名空间
第十五节–Zend引擎的发展

继续阅读“PHP的对象和类”