教你如何榨干PHP -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

这篇杂文翻译整理自网络各路文档资料(见最末的参考资料),尤其是 Ilia Alshanetsky (佩服之至) 在多个 PHP 会议上的演讲,主要是各类提高 PHP 性能的技巧,

教你如何榨干PHP

。为求精准,很多部分都有详细的效率数据,以及对应的版本等等。偷懒,数据就不一一给出了,直接给结论,如果需要看原文档,请到文末「参考资料」部分。橙色标题为推荐部分。

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

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

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

    QUOTE:

    // PHP CODE Highliting for CU by dZ902

   

    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,

电脑资料

教你如何榨干PHP》(https://www.unjs.com)。

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

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

    QUOTE:

    // PHP CODE Highliting for CU by dZ902

   

    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

   

    $is_win = DIRECTORY_SEPARATOR == '\\';

    ?>

    - 不用函数

    - Win98/NT/2000/XP/Vista/Longhorn/Shorthorn/Whistler...通用

    - 一直可用

    [size=+2]时间问题 (PHP>5.1.0 ONLY)

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

   

最新文章