仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 741|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之PHP开辟法式应当注重的42个优化原则

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:33:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没?      PHP 共同的语法夹杂了 C、Java、Perl 和 PHP 自立异的语法。它可以比 CGI或Perl更疾速的履行静态网页。用PHP做出的静态页面与其他的编程言语比拟,PHP是将法式嵌入到HTML文档中去履行,履行效力比完整生成HTML标志的CGI要高很多。上面引见了42个法式的优化原则。
    1.假如一个办法可静态化,就对它做静态声明。速度可提拔至4倍。
    2.echo 比 print 快。
    3.利用echo的多重参数(译注:指用逗号而不是句点)取代字符串联接。
    4.在履行for轮回之前肯定最大轮回数,不要每轮回一次都盘算最大值。
    5.刊出那些不必的变量特别是大数组,以便释放内存。
    6.尽可能防止利用__get,__set,__autoload。
    7.require_once()价值昂贵。
    8.在包括文件时利用完全途径,解析操作体系途径所需的工夫会更少。
    9.假如你想晓得剧本入手下手履行(译注:即办事器端收到客户端恳求)的时辰,利用$_SERVER[‘REQUEST_TIME’]要好过time()。
    10.函数取代正则表达式完成不异功效。
    11.str_replace函数比preg_replace函数快,但strtr函数的效力是str_replace函数的四倍。
    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 prop++)要比递增一个部分变量慢3倍。
    23.递增一个未预界说的部分变量要比递增一个预界说的部分变量慢9至10倍。
    24.仅界说一个部分变量而没在函数中挪用它,一样会减慢速度(其水平相当于递增一个部分变量)。PHP也许会反省看是不是存在全局变量。
    25.办法挪用看来与类中界说的办法的数目有关,由于我(在测试办法之前和以后都)添加了10个办法,但功能上没有变更。
    26.派生类中的办法运转起来要快于在基类中界说的一样的办法。
    27.挪用带有一个参数的空函数,其消费的工夫相当于履行7至8次的部分变量递增操作。相似的办法挪用所消费的工夫接近于15次的部分变量递增操作。
    28.用单引号取代双引号来包括字符串,如许做会更快一些。由于PHP会在双引号包抄的字符串中搜索变量,单引号则不会。固然,只要当你不需求在字符串中包括变量时才可以这么做。
    29.输入多个字符串时,用逗号取代句点来分隔字符串,速度更快。注重:只要echo能这么做,它是一种可以把多个字符串看成参数的“函数”(译注:PHP手册中说echo是言语布局,不是真实的函数,故把函数加上了双引号)。
    30.Apache解析一个PHP剧本的工夫要比解析一个静态HTML页面慢2至10倍。尽可能多用静态HTML页面,罕用剧本。
    31.除非剧本可以缓存,不然每次挪用时城市从头编译一次。引入一套PHP缓存机制凡是可以提拔25%至100%的功能,以避免除编译开支。
    32.尽可能做缓存,可以使用memcached。memcached是一款高功能的内存对象缓存体系,可用来减速静态Web使用法式,加重数据库负载。对运算码 (OP code)的缓存很有效,使得剧本不用为每一个恳求做从头编译。
    33.当操作字符串并需求查验其长度是不是知足某种请求时,你想固然地会利用strlen()函数。此函数履行起来相当快,由于它不做任何盘算,只前往在zval 布局(C的内置数据布局,用于存储PHP变量)中存储的已知字符串长度。
    然而,因为strlen()是函数,多几何少会有些慢,由于函数挪用会经由诸多步调,如字母小写化(译注:指函数名小写化,PHP不辨别函数名巨细写)、哈希查找,会跟从被挪用的函数一同履行。在某些情形下,你可使用isset() 技能减速履行你的代码。
   
    (举例以下)
    if (strlen($foo) < 5) { echo "Foo is too short"$$ }
    (与上面的技能做对照)
    if (!isset($foo{5})) { echo "Foo is too short"$$ }
   
    挪用isset()刚巧比strlen()快,由于与后者分歧的是,isset()作为一种言语布局,意味着它的履行不需求函数查找和字母小写化。也就是说,实践上在查验字符串长度的顶层代码中你没有花太多开支。
    34.当履行变量$i的递增或递加时,$i++会比++$i慢一些。这类差别是PHP独有的,其实不合用于其他言语,所以请不要修正你的C或Java代码并期望它们能当即变快,没用的。++$i更快是由于它只需求3条指令(opcodes),$i++则需求4条指令。后置递增实践上会发生一个一时变量,这个一时变量随后被递增。而前置递增直接在原值上递增。这是最优化处置的一种,正如Zend的PHP优化器所作的那样。
    切记这个优化处置不掉为一个好主张,由于并非一切的指令优化器城市做一样的优化处置,而且存在大批没有拆卸指令优化器的互联网办事供应商(ISPs)和办事器。
    35.并非事必面向对象(OOP),面向对象常常开支很大,每一个办法和对象挪用城市损耗良多内存。
    36.并不是要用类完成一切的数据布局,数组也很有效。
    37.不要把办法细分得过量,细心想一想你真正盘算重用的是哪些代码?
    38.当你需求时,你总能把代码分化成办法。
    39.尽可能采取大批的PHP内置函数。
    40.假如在代码中存在大批耗时的函数,你可以思索用C扩大的体例完成它们。
    41.评价查验(profile)你的代码。查验器会告知你,代码的哪些局部损耗了几何工夫。Xdebug调试器包括了查验法式,评价查验整体上可以显示出代码的瓶颈。
    42.mod_zip可作为Apache模块,用来即时紧缩你的数据,并可以让数据传输量下降80%。
    但愿对你有匡助!
对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。
第二个灵魂 该用户已被删除
沙发
发表于 2015-2-5 12:29:31 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
再见西城 该用户已被删除
板凳
发表于 2015-2-8 11:00:43 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-25 09:17:10 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-3-7 19:08:56 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
admin 该用户已被删除
6#
发表于 2015-3-11 14:40:21 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
因胸联盟 该用户已被删除
7#
发表于 2015-3-18 19:10:35 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
小魔女 该用户已被删除
8#
发表于 2015-3-21 00:25:00 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
谁可相欹 该用户已被删除
9#
发表于 2015-3-30 00:01:48 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
10#
发表于 2015-4-2 06:21:14 | 只看该作者
做为1门年轻的语言,php一直很努力。
愤怒的大鸟 该用户已被删除
11#
发表于 2015-4-4 18:50:27 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
活着的死人 该用户已被删除
12#
 楼主| 发表于 2015-4-11 11:45:30 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
山那边是海 该用户已被删除
13#
发表于 2015-4-11 17:52:44 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
变相怪杰 该用户已被删除
14#
发表于 2015-5-1 05:09:08 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
只想知道 该用户已被删除
15#
发表于 2015-5-1 19:10:42 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
兰色精灵 该用户已被删除
16#
发表于 2015-5-6 11:10:51 | 只看该作者
爱上php,他也会爱上你。
不帅 该用户已被删除
17#
发表于 2015-5-8 12:58:56 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
蒙在股里 该用户已被删除
18#
发表于 2015-5-9 09:25:00 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
精灵巫婆 该用户已被删除
19#
发表于 2015-5-10 10:47:04 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
小妖女 该用户已被删除
20#
发表于 2015-6-8 10:04:02 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 13:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表