对以下使用魔术方法和不适用魔术方法运行时间进行比较

使用魔术方法test1.php:

  1. <?php
  2.  
  3. /**
  4. * 测试类
  5. */
  6. class test
  7. {
  8. private $name = "jepeng";
  9.  
  10. public function __get($varname)
  11. {
  12. return $this->name;
  13. }
  14. }
  15.  
  16. $i = 0;
  17.  
  18. while ( $i<= 10000) {
  19. $i++;
  20. $test = new test();
  21. $test->name;
  22. }

不使用魔术方法test2.php

  1. <?php
  2.  
  3. /**
  4. * 测试类
  5. */
  6. class test
  7. {
  8. public $name = "jepeng";
  9. }
  10.  
  11. $i = 0;
  12.  
  13. while ( $i<= 100000) {
  14. $i++;
  15. $test = new test();
  16. $test->name;
  17. }

检测

  1. time php test1.php
  2.  
  3. time php test2.php

结果

  1. test1.php
  2. real 0m0.015s
  3. user 0m0.008s
  4. sys 0m0.006s
  5.  
  6. test2.php
  7. real 0m0.017s
  8. user 0m0.014s
  9. sys 0m0.002s

明显不使用魔术方法的运行时间是使用魔术方法的一半,如果项目很大,那么性能影响就会很大。

PHP语言性能优化——少使用魔术方法的更多相关文章

  1. Go语言性能优化

    原文:http://bravenewgeek.com/so-you-wanna-go-fast/ 我曾经和很多聪明的人一起工作.我们很多人都对性能问题很痴迷,我们之前所做的是尝试逼近能够预期的(性能) ...

  2. PHP性能之语言性能优化说明

    PHP语言性能优化优化啥? 如下图所示,PHP直接执行的是opcode,所以我们尽量减少扫描和转码解析. 这是我们第一个优化点,尽量使用PHP内置的函数代替我们的代码来实现同样的功能. 和我们自己写的 ...

  3. PHP性能之语言性能优化:魔术方法好不好?

    魔术方法是什么鬼? 魔术方法,也叫魔鬼函数.只要学过PHP的都知道什么是魔术方法,魔术方法就是在某些条件下自动执行的函数. PHP的魔术方法主要有下面几个,其他的参考PHP官方手册 __constru ...

  4. Django性能优化的几种方法

    1.一次性取出你所需要的数据 单一动作,需要多次连接数据库里的时候,最好一次性取出所有需要的数据,减少连接数据库的次数.此类需求推荐使用QuerySet.select_related()和prefet ...

  5. Spring/Hibernate 应用性能优化的7种方法

    对于大多数典型的 Spring/Hibernate 企业应用而言,其性能表现几乎完全依赖于持久层的性能.此篇文章中将介绍如何确认应用是否受数据库约束,同时介绍七种常用的提高应用性能的速成法.本文系 O ...

  6. js代码性能优化的几个方法

    相信写代码对于大部分人都不难,但想写出高性能的代码就需要一定的技术积累啦,下面是一些优化JavaScript代码性能的常见方法. 一.注意作用域 1.避免全局查找 使用全局变量和函数肯定要比局部的开销 ...

  7. MySQL数据库性能优化思路与解决方法(二转)

    原文:http://bbs.landingbj.com/t-0-242512-1.html 1.锁定表 尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是 ...

  8. WebSphere性能优化的几个方法

    1.更改http server的配置文件参数KeepAlive.     原因:这个值说明是否保持客户与HTTP SERVER的连接,如果设置为ON,则请求数到达MaxKeepAliveRequest ...

  9. MySQL数据库性能优化思路与解决方法(一转)

     1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越 小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设 ...

随机推荐

  1. java第十次面试题

    一.给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数. public static void ...

  2. Jenkins搭建.NET自动编译发布远程环境

    继上一篇文章Jenkins搭建.NET自动编译发布本地环境 发布到本地成功后,接下来配置发布到远程环境. Build配置——发布到远程 根据前面VS中发布项目,生成的CustomProfile2 来配 ...

  3. CMS初步认识

    一CMS本质 [1]基本思想是:分离内容的管理和设计,页面显示的风格和框架存储在模板里.至于页面显示的内容存储在数据库中或一个独立的文件中.当一个用户请求页面时,各部分联合生成一个标准的 HTML 页 ...

  4. ringojs 使用rp 包管理web 应用依赖

    rp 是一个类似npm 的包管理工具,我们可以使用package.json 定义依赖 然后执行rp install 即可,类似ringo-admin 的功能 其中packages 类似node 的no ...

  5. {转载}需要同时设置 noatime 和 nodiratime 吗?

    相信对性能.优化这些关键字有兴趣的朋友都知道在 Linux 下面挂载文件系统的时候设置 noatime 可以显著提高文件系统的性能.默认情况下,Linux ext2/ext3 文件系统在文件被访问.创 ...

  6. FastAdmin Bootstrap-table 特定某行背景变红

    FastAdmin Bootstrap-table 特定某行背景变红 rowStyle: function (row, index) { var style = {css:{'background': ...

  7. Firefox渗透插件—Web渗透必备工具

    1:Firebug Firefox的 五星级强力推荐插件之一,不许要多解释 2:User Agent Switcher 改变客户端的User Agent的一款插件 3:Hackbar 攻城师们的必备工 ...

  8. AHK的OnMessage

    OnMessage(0x404, "AHK_NOTIFYICON") AHK_NOTIFYICON(wParam, lParam) { if (lParam = 0x202) ; ...

  9. 简化Redis数据访问代码RedisTemplate

    ---恢复内容开始--- Redis数据结构简介: Redis可以存储键与5中数据结构类型之间的映射,这5中数据结构类型分别是;String(字符串),List(列表),Set(集合),Hash(散列 ...

  10. java之Jsch实现Linux的文件上传与下载

    一.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功 ...