zoukankan      html  css  js  c++  java
  • php——优化篇

    php优化分三个部分

    1,编码优化

    2,Opcode缓存

    3,变量和数据缓存


    编码部分

    1,字符串连接是使用“,”而不是“.”号

    php里逗号和句号都可以起到连接符的作用,关于如何优化输出,可以看这里如何优化php字符串echo输出 

    此外,输出多个字符串时,用逗号代替句点来分隔字符串,速度更快

    <?php

    echo "hi"."there"."good";

    echo "hi","there","good";

    ?>

    2,字符串包含变量时使用双引号而不是单引号

    实践证明,用单引号代替双引号来包含字符串,这样做会更快一些。

    因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。更多分析请看实例分析php单引号和双引号的区别

     

    <?php

    $name="php"

    echo 'hi there is '.$name;

    echo "hi there ,$name";

    ?>

    3,优先使用require,而不是require_once

    导入php脚本的时候会进行大量的操作状态(stat)调用,因而require比required_once 要快。

    4,提前计算循环长度

    <?php

    $items=array(1,2,3,4,5,6,7,8,9);

    for($i=0;$i<count(items);i++)

    {

    statment;

    }

    $items=array(1,2,3,4,5,6,7,8,9);

    $total=count(items);

    for($i=0;$i<$total;i++)

    {

    statment;

    }

    ?> 

    5,循环访问数组的时候优先使用foreach,其次是用for和while

     

    6,大文件访问是优先使用file_get_contents()。

    7,在定义的类中,如无必要可以使用公共变量,而不是使用方法来操作私用变量。

     

    8、echo 比 print 快

    echo和print是PHP程序中经常使用的指令,尤其是需要调试的时候。echo和print都能输出一段信息,但经测试发现,echo运行速度会比print快,因此在程序编写是应使用echo而非print。但是有时候也需要用到print,echo不能完全代替print。请看php echo()和print()有什么区别

     

    9、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。

    if else if 的使用非常普遍,在其他语言里也一样,这个写法好像更符合人的说话习惯,但是在程序里这样写并不太好,它在效率上比switch case要低。所以,一旦程序里需要多个判断时,就应该用switch case而不要再用if else if else if这样。

    10、数据库连接当使用完毕时应关掉

    在操作数据库时,很多程序员往往忘记关掉数据库连接,或许他们没有这个习惯。数据库连接是需要消耗内存为代价的,连接数越多内存消耗就越多,所以在实际应用中都必须及时关闭不需要用到的连接,以释放内存,缓解服务器压力。

    11、错误消息代价昂贵

    错误消息一般用于调试,它的执行效率其实是很低的,速度上会比直接运行慢很多。所以,在程序不需要抓取错误消息时,就不要用。

    12、mod_zip你用了吗

    mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。

    Opcode缓存

    1,APC

    2,XCache

    3,eAccelerator

    变量和数据缓存

    1,APC 

    2,memcached

    3,redis

     

  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/fslnet/p/2282010.html
Copyright © 2011-2022 走看看