教你如何榨干PHP

free凌夏的温度

free凌夏的温度

2016-01-29 14:15

教你如何榨干PHP,教你如何榨干PHP
这篇杂文翻译整理自网络各路文档资料(见最末的参考资料),尤其是 Ilia Alshanetsky (佩服之至) 在多个 PHP 会议上的演讲,主要是各类提高 PHP 性能的技巧。为求精准,很多部分都有详细的效率数据,以及对应的版本等等。偷懒,数据就不一一给出了,直接给结论,如果需要看原文档,请到文末「参考资料」部分。橙色标题为推荐部分。

========================================================

[size=+2]静态调用的成员一定要定义成 static  (PHP5 ONLY)

贴士:PHP 5 引入了静态成员的概念,作用和 PHP 4 的函数内部静态变量一致,但前者是作为类的成员来使用。静态变量和 Ruby 的类变量(class variable)差不多,所有类的实例共享同一个静态变量。

QUOTE:
// PHP CODE Highliting for CU by dZ902

<?php
class foo {
    function
bar() {
        echo
'foobar';
    }
}

$foo = new foo;

// instance way

$foo-bar();

// static way

foo::bar();
?

静态地调用非 static 成员,效率会比静态地调用 static 成员慢 50-60%。主要是因为前者会产生 E_STRICT 警告,内部也需要做转换。

[size=+2]使用类常量 (PHP5 ONLY)

贴士:PHP 5 新功能,类似于 C++ 的 const。

使用类常量的好处是:

- 编译时解析,没有额外开销
- 杂凑表更小,所以内部查找更快
- 类常量仅存在于特定「命名空间」,所以杂凑名更短
- 代码更干净,使除错更方便

[size=+2](暂时)不要使用 require/include_once

require/include_once 每次被调用的时候都会打开目标文件!

- 如果用绝对路径的话,PHP 5.2/6.0 不存在这个问题
- 新版的 APC 缓存系统已经解决这个问题

文件 I/O 增加 = 效率降低

如果需要,可以自行检查文件是否已被 require/include。

[size=+2]不要调用毫无意义的函数

有对应的常量的时候,不要使用函数。

QUOTE:
// PHP CODE Highliting for CU by dZ902

<?php
php_uname
('s') == PHP_OS;
php_version() == PHP_VERSION;
php_sapi_name() == PHP_SAPI;
?

虽然使用不多,但是效率提升大概在 3500% 左右。

[size=+2]最快的 Win32 检查

QUOTE:
// PHP CODE Highliting for CU by dZ902

<?php
$is_win
= DIRECTORY_SEPARATOR == '\';
?


- 不用函数
- Win98/NT/2000/XP/Vista/Longhorn/Shorthorn/Whistler...通用
- 一直可用

[size=+2]时间问题 (PHP5.1.0 ONLY)

你如何在你的软件中得知现在的时间?简单,「time() time() again, you ask me...」。

展开更多 50%)
分享

猜你喜欢

教你如何榨干PHP

PHP
教你如何榨干PHP

教你如何选葡萄干

生活常识
教你如何选葡萄干

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

榨干Windows XP的最后一滴油

windows 操作系统
榨干Windows XP的最后一滴油

榨干MS SQL Server 最后一滴血

SQLServer
榨干MS SQL Server 最后一滴血

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

鲜榨果汁怎样榨才健康

营养价值
鲜榨果汁怎样榨才健康

如何榨柠檬汁

生活小常识 生活小窍门
如何榨柠檬汁

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

老技术新外衣 如何设计一个包含Ajax技术的PHP网页

老技术新外衣 如何设计一个包含Ajax技术的PHP网页

delphi构件制作方法简介

delphi构件制作方法简介
下拉加载更多内容 ↓