zoukankan      html  css  js  c++  java
  • PHP站点性能优化方法总结

    一、代码优化,我自己认为“代码优化”分两种,一种是从代码质量上提高,一种是通过优化引擎来对网站代码进行优化,

       1、代码质量上,尽量避免代码冗余,

        (1)不在循环中对数据库进行select操作、

        (2)在程序开头文件包含代码中尽量使用require_once()或require() ,在流程控制区段的文件包含使用include_once()或include(),包含文件时要使用完整路径,解析操作系统路径所需时间就会变少

        (3)在执行for循环之前要事先确定最大循环数,不要每循环一次都计算最大值

        (4)随时注销那些不使用的变量,尤其是大数组,以便释放内存

        (5)使用分支语句(switch,case)好过使用多个if,elseif语句

        (6)用单引号来代替多引号包含字符串执行效率更快一些,因为单引号不需要解析变量

        (7)避免使用select * from mytable这样的句子 

        (8)。。。。。。

      2、去掉多余的代码注释 或者 使用Zend Optimizer引擎来在不去掉多余注释的前提下达到提升运行速度的目的

        装这个引擎比较简单,下载对应平台的版本以后,解开压缩文件,然后在 php.ini 文件里面加上下面两行,重新启动 Web 服务器,就搞定了。

    zend_optimizer.optimization_level=15
    zend_extension="/path/to/ZendOptimizer.so"
    zend_loader.enable=Off

        如果是 Win32 平台的应该是:

    zend_optimizer.optimization_level=15
    zend_extension_ts="C:\\path\\to\\ZendOptimizer.dll"
    zend_loader.enable=Off

        其实第三行是可选的。因为看起来把 zend_loader 关掉能提高一点速度,因此值得把这第三行放到 php.ini 。需要注意的是,关掉的前提条件是你没有在使用 Zend 加密程序。

    二、使用缓存技术

      (1)内存缓存     使用得最普遍的是memcached这种系统把数据库数据放在一个很大的内存池里,在动态应用中减少数据库负载,提升访问速度。

      (2)静态缓存     静态缓存是指页面静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面。

    三、Web 内容压缩

      几乎所有的浏览器都支持Gzip的压缩方式,gzip可以降低80%的输出,付出的代价是大概增加了10%的cpu计算量。但是赚到的是不仅占用的带宽减少了,而且你的页面加载会变得很快,优化了你的PHP站点性能。
      你可以在PHP.ini中开启它
      zlib.output_compression = On
      zlib.output_compression_level = (level)(level可能是1-9之间的数字,你可以设置不同的数字使得他适合你的站点。)
      如果你使用apache,你也可以激活mod_gzip模块,他是高度可定制的。

    四、数据库优化,

      1、数据库设计,

         (1)选择合适的字段类型和字符长度

         (2)适当建立索引

         (3)文件、图片等大文件用文件系统存储,不用数据库

         (4)宁可集中批量操作,避免频繁读写

      2、SQL语句优化

         (1)读写分离    如果数据库压力很大,一台机器支撑不了,那么可以用mysql复制实现多台机器同步,将数据库的压力分散。

         (2)比如尽量不再运算符的左侧使用函数;使用事务来完成需要一系列sql语句才能完成的操作;保持sql语句中进行运算的两个字段类型一直;等等。。。。

      3、mysql缓存    开启QueryCache缓存,当查询接收到一个和之前同样的查询, 服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询

    以上为我对php站点性能优化的总结,如果有什么错误的地方希望大家指正。嘿嘿

  • 相关阅读:
    VS2008找不到MFC90d.dll错误解决方法
    字符编码之间的转换
    java 中使用RSA非对称性加密解密
    java eclipse中使用wsdl生成soap 的客户端代码
    java 打印空心菱形的两种实现
    Chrome 快捷键
    电脑常用快捷键
    VS2013常用快捷键
    Eclipse常用快捷键
    java 使用for循环打印杨辉三角形
  • 原文地址:https://www.cnblogs.com/xcp19870712/p/2647542.html
Copyright © 2011-2022 走看看