php开发效率,php性能优化
1.在可以用file_get_contents代替file、fopen、feof、fgets等方法的时候,尽量用file_get_contents,因为它的效率要高很多!但是打开一个URL文件要注意file_get_contents的PHP版本;
2.尽量少操作文件,虽然PHP的文件操作效率不低;
3.优化Select SQL语句,尽可能少的进行插入和更新操作(关于更新,我被恶评了);
4.尽可能多的使用PHP内部函数(但是我为了找一个PHP中不存在的函数,浪费了本来可以写自定义函数的时间。好一个体验问题!);
5.不要在循环内部声明变量,尤其是大变量:objects(看来这不仅仅是PHP要注意的问题吧?);
6.多维数组应该尽量不要循环嵌套赋值;
7.能用PHP内部字符串操作函数的时候不要用正则表达式;
8 .外语更有效率。尽量使用foreach,而不是while和for循环;
9.使用单引号而不是双引号来引用字符串;
10.“用i=1替换i=i 1。符合c/c的习惯,效率还是高的”;
1.对于全局变量,unset()应该在用完时删除。
12.在多个嵌套循环中,如果可能的话,最长的循环应该放在内层,最短的循环放在外层,这样可以减少cpu穿越循环层的次数,从而优化程序性能。
优化php代码的40个技巧
1.如果一个方法可以是静态的,就对它进行静态声明。速度可以提高到4倍。
2.echo比print快。
3.使用echo的多个参数,而不是字符串连接。
4.在执行for循环之前,确定最大循环次数。不要每次循环都计算最大值。
5.注销那些不用的变量,尤其是大数组,以便释放内存。
6.尽量避免使用__get、__set、__autoload。
7.require_once()开销很大。
8.包含文件时使用完整路径将花费更少的时间来解析操作系统路径。
9.如果想知道脚本开始执行的时刻(音译:服务器收到客户端请求),用$ _ server [request _ time]比time()好。
10.检查strncasecmp、strpbrk和stripos函数是否可以替换正则表达式来完成相同的功能。
11.str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的4倍。
12.如果一个字符串替换函数可以接受数组或者字符作为参数,并且参数的长度不是太长,那么可以考虑编写一个额外的替换代码,这样每次传递一个参数就是一个字符,而不是只编写一行代码接受数组作为参数进行查询和替换。
13.使用switch case比使用多个if、else if语句更好。
14.用@阻塞错误消息是非常低效的。
15.打开apache的mod_deflate模块。
16.数据库连接在使用时应该关闭。
17.$ row [id]的效率是$row[id]的7倍。
18.错误消息代价高昂。
19.尽量不要在for循环中使用函数,比如for($ x=0;$ x count($ array);$x)每次循环重复时都会调用count()函数。
20.在方法中递增局部变量是最快的。几乎和在函数中调用局部变量一样快。
21.增加一个全局变量比增加一个局部变量慢两倍。
22.增加一个对象属性(比如$this- prop)比增加一个局部变量慢3倍。
23.递增一个未定义的局部变量比递增一个预定义的局部变量慢9到10倍。
24.只定义局部变量而不在函数中调用也会减慢速度(其程度相当于增加一个局部变量)。PHP可能会检查是否有全局变量。
25.方法调用似乎与类中定义的方法数量无关,因为我添加了10个方法(测试方法之前和之后),但性能没有变化。
26.派生类中的方法比基类中定义的相同方法运行得更快。
27.调用带有一个参数的空函数与执行7到8次局部变量增量操作花费的时间相同。一个类似的方法调用需要将近15次局部变量增量操作。
28.用单引号代替双引号来包含字符串,这样会更快。因为PHP在双引号包围的字符串中搜索变量,单引号不会。当然,只有在不需要在字符串中包含变量的情况下,才能这样做。
29.当输出多个字符串时,使用逗号而不是句点来分隔字符串会更快。注意:只有echo可以做到这一点。它是一种可以将多个字符串作为参数的“函数”。
30.Apache解析PHP脚本的速度比静态HTML页面慢2到10倍。尽量多使用静态HTML页面,少用脚本。
31.除非脚本可以缓存,否则每次调用时都会重新编译。引入PHP缓存机制通常可以提高25%到100%的性能,从而避免编译开销。
32.尝试做缓存,可以用memcached。Memcached是一个高性能的内存对象缓存系统,可用于加速动态Web应用程序和减少数据库负载。OP代码的缓存非常有用,因此不必为每个请求重新编译脚本。
33.当你操作一个字符串并需要检查它的长度是否满足一定的要求时,你会理所当然的使用strlen()函数。这个函数执行起来相当快,因为它不做任何计算,只返回存储在zval结构(C内置的用于存储PHP变量的数据结构)中的已知字符串长度。但是strlen()是一个函数,速度有些慢,因为函数调用会经历很多步骤,比如小写字母,哈希查找,它会和被调用的函数一起执行。在某些情况下,您可以使用isset()技术来加速代码的执行。
《出埃及记》(例如,下面)
if(strlen($ Foo)5){ echo“Foo太短”;}
对比。(与以下提示进行比较)
如果(!isset($ Foo { 5 }){ echo“Foo太短”;}
调用isset()恰好比strlen()快,因为与后者不同,isset()作为一种语言结构,意味着它的执行不需要函数查找和小写字母。也就是说,其实你并没有在顶层代码中花费太多的开销来检查字符串的长度。
34.在执行变量$i的递增或递减时,$i会比$ i慢,这种差异是PHP特有的,不适用于其他语言,所以请不要修改你的C或Java代码,指望它们马上变快。没用的。$i更快,因为它只需要3条指令(操作码),而$i需要4条指令。Post-increment实际上会产生一个临时变量,然后这个变量会被递增。而预增量直接在原始值上增加。这是一种优化,就像Zend的PHP优化器一样。记住这个优化过程是一个好主意,因为不是所有的指令优化器都执行相同的优化过程,并且有大量的互联网服务提供商(ISP)和服务器没有配备指令优化器。
35.它并不总是面向对象的(OOP)。面向对象往往开销很大,每个方法和对象调用都会消耗大量内存。
36.没有必要用类来实现所有的数据结构。数组也很有用。
37.方法不要细分太多。仔细考虑您真正打算重用哪些代码?
38.当你需要的时候,你可以把代码分解成方法。
39.尽量使用大量的PHP内置函数。
40.如果代码中有大量耗时的函数,可以考虑用C扩展实现。
41.评估和剖析您的代码。检查器会告诉你代码的哪些部分花了多少时间。Xdebug调试器包括检查程序,评估检查通常可以显示代码的瓶颈。
42.mod_zip可以作为Apache模块,瞬间压缩你的数据,可以减少80%的数据传输。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。