关于PHP性能提升踩过的一些坑

    性能这个东西,在网站规模到达一定程度后,会是一个永恒的主题。关于这方面,本人有一些拙见,现在拿出来,大家一起探讨下。

    1、编码过程中,传递参数时,尽量少使用‘引用传参’。这是一个巨坑啊。。。我们要了解,PHP所以来的技术模型是什么?写时复制(copy-on-write)好吧啦。当你使用‘引用传参’的时候,你的那个什么变量啊啥的都会再重新复制一份,知道了不。然而当你直接传参一个巨大的变量给某个函数的时候,并不会对你的性能造成多大影响。所以嘞,当你的程序出现性能问题的时候,不妨看看是否使用了‘引用传参’这个鬼吧。

    2、在使用for循环之前。$i<count()。。。等一系列计算书组或者字符串的长度的函数尽量不要使用。数组小一点的话影响不大,数据量一多,嘿嘿,结果就不言而喻了。因为你每一次循环都要使用这个函数来计算长度。十次百次无所谓,十万次百万次就感觉出来差距了。

    3、使用isset函数的时候要注意你所检测的变量,可不可以设置为null。这是一个比较隐秘的坑。因为isset对变量未设置和变量为null返回的值是一样的。所以尽量注意下喽。这个对你的性能提升的不大,但是,会反映出来你的程序的严谨性。所以嘞,仁者见仁智者见智,多注意下总不会错的。

    4、还是循环。我们通常会用循环来做一些事情,比如:组合、检测、替换数据等等。。。但是我们又没有想过,当我们循环完毕后会留下数组的引用。这就是个麻烦事情了。这些引用,会占用我们的运行内存,对下面的编码也会有一定的影响。所以嘞,最好的做法就是,每次循环完事之后,使用unset来清一下这些残留。有备无患,相信性能方面会有那么一丢丢的提升的。

    5、尽量不要在循环中使用查询。这个就很明显了。每循环一次就调用一次数据库效率高,还是只执行一次查询效率高,诸君应该都清楚。哪怕是一次查询的数据量大,我们还可以分段查询或者分批次查询。总是会比多次调用要好一点的。

    6、正则的问题相信大家应该知道。尽量少使用吧,多使用PHP的内置函数。这才是明智之道。但是内置函数也是有快慢之分的哈。最慢的应该就是魔术变量之类的了,可能不准确,大家编码的时候注意下。

    7、用少量的代码实现功能。正常人的思维么,尽量把业务逻辑分析清楚之后再开始编码。这点如果做到的话,关于PHP的性能优化基本上就完成了一大部分了。这里的什么可读性啦啥的在下就不啰嗦了,就是提一下。

    8、再来就是PHP的配置文件php.ini了。比如什么分配内存啦,执行时间长短的设置啦,Zend OPcache的配置啦,缓存输出,等等。这些东西在我的博客上有文章,大家有时间可以简单看下。这些东西本来是该运维来搞的,但是嘞,谁让我们是万能的PHPer呢,所以了解下总没有错的。

    9、这是最后一点了。那就是万事按照你的需求来做。在保证解决你的需求的大前提下,你可以使用一些优化的小技巧,比如什么引入文件的消耗大小啦,echo的性能比print好啦,种种。但是有一个前提,就是完成需求。别的都是废话。还有就是面向对象也不必时时刻刻都考虑这个东西,该用的时候要用,别客气,先完成功能再说。

    好啦,这次写的就到这里了,时间不多哈,见谅。。。

    如果感觉不错的话,请多多点赞支持哦。。。

posted @ 2018-04-25 09:48  luyaran  阅读(200)  评论(0编辑  收藏  举报