优化php效率,提高php性能一些方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优化php效率,提高php性能一些方法

优化php效率,提高php性能一些方法 优化php效率,提高php性能的一些方法 这篇杂文翻译整理自网络各路文档资料(见最末的参考资料),尤其是 Ilia Alshanetsky (佩服之至) 在多个 PHP 会议上的演讲,主要是各类提高 PHP 性能的技巧。为求精准,很多部分都有详细的效率数据,以及对应的版本等等。偷懒,数据就不一一给出了,直接给结论,如果需要看原文档,请到文末「参考资料」部分。橙色标题为推荐部分。 ======================================================== 静态调用的成员一定要定义成 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 警告,内部也需要做转换。 使用类常量 (PHP5 ONLY) 贴士:PHP 5 新功能,类似于 C++ 的 const。 使用类常量的好处是: - 编译时解析,没有额外开销 - 杂凑表更小,所以内部查找更快 - 类常量仅存在于特定「命名空间」,所以杂凑名更短 - 代码更干净,使除错更方便 (暂时)不要使用 require/include_once require/include_once 每次被调用的时候都会打开目标文件! - 如果用绝对路径的话,PHP 5.2/6.0 不存在这个问题 - 新版的 APC 缓存系统已经解决这个问题 文件 I/O 增加 = 效率降低 如果需要,可以自行检查文件是否已被 require/include。 不要调用毫无意义的函数 有对应的常量的时候,不要使用函数。 QUOTE: // PHP CODE Highliting for CU by dZ902 ?php php_uname(s) == PHP_OS; php_version() == PHP_VERSION; php_sapi_name() == PHP_SAPI; ? 虽然使用不多,但是效率提升大概在 3500% 左右。 最快的 Win32 检查 QUOTE: // PHP CODE Highliting for CU by dZ902 ?php $is_win = DIRECTORY_SEPARATOR == \\; ? - 不用函数 - Win98/NT/2000/XP/Vista/Longhorn/Shorthorn/Whistler...通用 - 一直可用 时间问题 (PHP5.1.0 ONLY) 你如何在你的软件中得知现在的时间?简单,「time() time() again, you ask me...」。 不过总归会调用函数,慢。 现在好了,用 $_SERVER[REQUEST_TIME],不用调用函数,又省了。 加速 PCRE - 对于不用保存的结果,不用 (),一律用 (?:) 这样 PHP 不用为符合的内容分配内存,省。效率提升 15% 左右。 - 能不用正则,就不用正则,在分析的时候仔细阅读手册「字符串函数」部分。有没有你漏掉的好用的函数? 例如: strpbrk() strncasecmp() strpos()/strrpos()/stripos()/strripos() 加速 strtr 如果需要转换的全是单个字符的时候,用字符串而不是数组来做 strtr: QUOTE: // PHP CODE Highliting for CU by dZ902 ?php $addr = strtr($addr, abcd, efgh); // good $addr = strtr($addr, array(a = e, // ... )); // bad ? 效率提升:10 倍。 不要做无谓的替换 即使没有替换,str_replace 也会为其参数分配内存。很慢!解决办法: - 用 strpos 先查找(非常快),看是否需要替换,如果需要,再替换

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档