PHP语言性能优化——少使用魔术方法

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

使用魔术方法test1.php:

<?php 

/**
* 测试类
*/
class test
{
    private $name = "jepeng";

    public function __get($varname)
    {
        return $this->name;
    }
}

$i = 0;

while ( $i<= 10000) {
    $i++;
    $test = new test();
    $test->name;
}

不使用魔术方法test2.php

<?php 

/**
* 测试类
*/
class test
{
    public $name = "jepeng";
}

$i = 0;

while ( $i<= 100000) {
    $i++;
    $test = new test();
    $test->name;
}

检测

time php test1.php

time php test2.php

结果

test1.php
real    0m0.015s
user    0m0.008s
sys    0m0.006s

test2.php
real    0m0.017s
user    0m0.014s
sys    0m0.002s

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

时间: 2024-12-28 21:07:03

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

Oracle DBA数据库高级工程师(下部)SQL语言+性能优化+数据复制

套餐介绍: Oracle DBA数据库高级工程师(下部)SQL语言+性能优化+数据复制 http://edu.51cto.com/pack/view/id-973.html 描述 Oracle DBA数据库高级工程师培训课程是风哥独自研发的精品实战课程,本路线图主要是让大家快速就业.高薪就业.课程内容以实战为主(占98%),理论为辅(占2%).本课程知识全面系统实用,结合风哥十年Oracle经验,囊括企业用到的所有知识点,课程包含大量实战案例,涉及Oracle核心技术及底层研究,从零开始学习Or

PHP性能之语言性能优化

PHP语言性能优化优化啥? 如下图所示,PHP直接执行的是opcode,所以我们尽量减少扫描和转码解析. 这是我们第一个优化点,尽量使用PHP内置的函数代替我们的代码来实现同样的功能. 和我们自己写的代码一样,PHP本身内置了很多函数,所以实现同一个功能我们可以使用多个内置函数来实现,那么是不是内置函数也会有性能区别呢? 答案当时是肯定的,因为每个函数的运行量不同(类似我们的代码,实现一个功能,使用10行代码和使用100行代码会有一定的时间差),生成的opcode也不一样.这就是我们优化的第二个

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

魔术方法是什么鬼? 魔术方法,也叫魔鬼函数.只要学过PHP的都知道什么是魔术方法,魔术方法就是在某些条件下自动执行的函数. PHP的魔术方法主要有下面几个,其他的参考PHP官方手册 __construct() __destruct() __tostring() __invoke() __call() __callStatic() __get() __set() __isset() __unset __clone()   为什么会有魔术方法? 魔术方法是在需要实现一些功能,但是一般代码做不到或很难

C语言性能优化

(1)数据对齐是否更快? 从学习数据结构的第一天起,书上就告诉我们,数据对齐可以使得访问速度更快,我心里也一直有这样一个印象,但是对其具体原因,一直不太清楚.借着最近TreeLink大赛之后大家对于性能优化痴迷的机会,我也来细细研究下这个问题. 首先来看下面这段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4

PHP程序性能优化的50种方法

用单引号代替双引号来包含字符串,这样做会更快一些.因为 PHP 会在双引号包围的 字符串中搜寻变量,单引号则不会,注意:只有 echo 能这么做,它是一种可以把多个字符 串当作参数的“函数”(译注:PHP 手册中说 echo 是语言结构,不是真正的函数,故把函数 加上了双引号). 如果能将类的方法定义成 static,就尽量定义成 static,它的速度会提升将近 4 倍. $row[‘id’] 的速度是$row[id]的 7 倍 echo 比 print 快,并且使用 echo 的多重参数(译

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

相信写代码对于大部分人都不难,但想写出高性能的代码就需要一定的技术积累啦,下面是一些优化JavaScript代码性能的常见方法. 一.注意作用域 1.避免全局查找 使用全局变量和函数肯定要比局部的开销更大,因为要涉及作用域链上的查找,请看以下函数: 1 function demo1() { 2 var imgs = document.getElementByTagName("img"); //获取页面所有img标签 3 4 for(var i = 0; i <= imgs.len

jQuery代码性能优化的10种方法

1.总是使用#id去寻找element 在jQuery中最快的选择器是ID选择器 ($('#someid')). 这是因为它直接映射为JavaScript的getElementById()方法. 选择单个元素 <div id="content"> <form method="post" action="/"> <h2>Traffic Light</h2> <ul id="traffi

PHP性能之语言性能优化:安装VLD扩展&mdash;&mdash;检测性能

使用Linux命令安装 //下载安装包 wget http://pecl.php.net/get/vld-0.14.0.tgz //解压包 tar zxvf vld-0.14.0.tgz //进入编译.安装目录 cd vld-0.14.0/ //扩展PHP的扩展木块 phpize //使用locate找到php-config路径 locate php-config 如果提示没有该命令,则运行如下命令 yum -y install mlocate updatedb //更行数据,即可用 //配置编

PHP性能之语言性能优化:vld——查看代码opcode的神器

vld介绍 vld是PECL(PHP 扩展和应用仓库)的一个PHP扩展,现在最新版本是 0.14.0(2016-12-18),它的作用是:显示转储PHP脚本(opcode)的内部表示(来自PECL的vld简介).简单来说,可以查看PHP程序的opcode. vld扩展的安装 1.下载官方插件安装压缩包 官方网址:http://pecl.php.net/package/vld 下载命令:# wget http://pecl.php.net/get/vld-0.14.0.tgz 注:下载的URL是在