在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点仍然是PHPer没有对程序进行更好的优化。



第一类、变量类型:

1)主要是使用未定义变量,而直接使用变量,做程序开发结束的时候,程序员都喜欢关闭debug,让一切Notice和Warning都影藏起来,但实质上php即使关闭debug也会记录日志,将所有的Notice和Warning信息全部写入日志文件中,无非是一件浪费性能的事,很多phper都有这个小习惯,包括我也一样。

2)另外在程序中应尽量注意变量的使用,如字符串最好使用单引号,而不是双引号,毕竟双引号还得PHP解析为单引号在执行。

3)说到这里数组中的键值索引一样也需要用单引号,不要不写引号这样的程序执行效率极低。

第二类、函数类型:

1)SESSION变量,大家都知道调用SESSION这个全局变量,往往大家在将值放入SESSION之后,直接就往下接着写自己的代码了,却忘记了SESSION变量会在页面执行完毕之后才会将值放入SESSION中供其他页面使用,这样如果这个页面执行时间过长,其他页面也调用这个SESSION就会等待这个写入SESSION的页面执行完毕之后,再往后执行其他程序,但是我们的程序要的不是这样的效果,因为我们只需要将值写入SESSION执行之后,就已经放在SESSION中了,而不是等待页面执行完毕,从PHP官网也能看到这个SESSION变量确实有这个问题,因此我们需要在写入SESSION之后关闭写入SESSION操作,加上session_write_close()函数则可以减少等待页面加载完毕的这些无用时间。2)file_get_contents()函数,这个函数意思是获取远程URL的页面内容,但虽然这样写着,很多人都不会注意这样一个问题”超时”,如果获取不到页面内容,程序将一直卡在这里,很多人会联系到设置页面超时或者在php.ini文件中去设置max_execution_time最大执行超时时间,但如果使用的是php-fpm(也就是php-cgi)将对这个参数视为无效,而需要在php-fpm配置文件中设置最大执行超时时间,最终这样也无法起到作用,需要解决这个问题,仍然需要我们在至调用该函数的时候加上超时时间,这样才能从根本上解决问题。

第三类、引用文件类型:

引用文件很多时间我们都习惯性的使用include
,但是这中间也隐含着一些使用技巧,如果经常使用框架开发程序的人就很熟悉,项目项目下面会有”include”字样类型的文件夹,程序在查找包含文件的顺序先是在当前工作目录根路径下include字样文件夹中下查找,然后再是当前该文件所在目录相对的include字样文件夹中查找。也就是这个include使用不当,程序将会按照这个方式在根路径下面依次查找,这样同样是一件很费解的事,所以大家应尽量将使用的文件写在最容易查找的位置,这样才有利于程序的执行效率。此外还有像echo输出多个字符串或变量的函数,使用”.”连接效率要比”,”连接执行效率低。

五十个小技巧提高PHP执行效率(一)的更多相关文章

  1. 五十个小技巧提高PHP执行效率

    在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点 ...

  2. 五十个小技巧提高PHP执行效率(二)

    更详细具体的总结如下: 1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的 ...

  3. 提高python执行效率的方法

    python上手很容易,但是在使用过程中,怎么才能使效率变高呢? 下面说一下提高python执行效率的方法,这里只是说一点,python在引入模块过程中提高效率的方法. 例如: 1.我们要使用os模块 ...

  4. 提高SQL执行效率

    原文地址:http://www.cnblogs.com/hlxs/archive/2012/05/07/2487082.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ...

  5. 提高SQL执行效率的16种方法

      项目中优化sql语句执行效率的方法:1)尽量选择较小的列2)将where中用的比较频繁的字段建立索引3)select子句中避免使用'*'4)避免在索引列上使用计算.not in 和<> ...

  6. 编程技巧│提高 Javascript 代码效率的技巧

    目录 一.变量声明 二.三元运算符 三.解构赋值 四.解构交换 五.箭头函数 六.字符串模版 七.多值匹配 八.ES6对象简写 九.字符串转数字 十.次方相乘 十一.数组合并 十二.查找数组最大值最小 ...

  7. 使用PHP的五个小技巧

    PHP的一些小技巧,比较基础,总结一下,老鸟换个姿势飘过去就是. 1. str_replace str_replace是非常常常常常用的php函数,用于字符串替换,经常看到某些php新人为了替换一批字 ...

  8. .Net中Task使用来提高代码执行效率

    技术不断更新迭代,更高效的执行效率越来越被重视,所以对Task的使用进行了简单使用做了整理与大家分享. .Net 中有了Task后使多线程编程更简单使用和操作,下面粘上代码进行简单说明: /// &l ...

  9. 解析提高PHP执行效率的50个技巧

    1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手 ...

随机推荐

  1. Vue源码后记-其余内置指令(1)

    把其余的内置指令也搞完吧,来一个全家桶. 案例如下: <body> <div id='app'> <div v-if="vIfIter" v-bind ...

  2. hbase的HQuorumPeer和QuorumPeerMain

    hbase是列式数据库,既可以单机也可以以集群的方式搭建,以集群的方式搭建一般建立在hdfs之上. 分布式的hbase如何启动? 首先启动hadoop,然后就来问题了:zookeeper和hbase的 ...

  3. Android 开发笔记___图像按钮__imageButton

    IMAGEBUTTON 其实派生自image view,而不是派生自button.,image view拥有的属性和方法,image button 统统拥有,只是imagebutton有个默认的按钮外 ...

  4. AMD与commonJS

    CommonJS:它是一个同步的模式.但是这种模式并不适合于浏览器端,如果浏览器同步模式一个一个加载模块,那么打开将会变得非常的慢. AMD:它最大的特点就是可以异步的方式加载模块,具体的不同在于AM ...

  5. python是如何进行内存管理的

    Python引入了一个机制:引用计数. python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时, ...

  6. 【机器学习实战】第14章 利用SVD简化数据

    第14章 利用SVD简化数据 SVD 概述 奇异值分解(SVD, Singular Value Decomposition): 提取信息的一种方法,可以把 SVD 看成是从噪声数据中抽取相关特征.从生 ...

  7. 【Arduino】使用LCD1602和DHT11制作温湿度显示器

    材料: 1.DHT11 2.LCD1602 3.LCD1602 转接板 4.Arduino UNO 5.Arduino 传感器扩展版 那个Arduino UNO 我当初挑类个便宜的山寨货买,结果发来和 ...

  8. concurrent.futures

    concurrent.futures concurrent.futures提供高层次的接口,用来实现异步调用. 这个异步执行可以使用threads(ThreadPoolExecutor)或者proce ...

  9. 如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)

    本节我们将创建三节点的 swarm 集群. swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node. 所有节点 ...

  10. 电商SEO

    大家都知道网站有SEO,电商也有SEO,今天陈晨就带大家来讲讲电商SEO的思路以及电商最重要的选品规划! 1. 选品是核心 2. 挖掘卖点是你走向成功必经之路 3. 产品定价策略---人群画像 4. ...