84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
如何用最简单的方式,实现对php网站的优化?
学习是最好的投资!
网站的优化范围太大. 其实优化PHP代码得到的性能提升远不如优化前端. 毕竟网络请求更耗时, 动辄几秒的请求, 更有优化空间, 而PHP代码只要写的不是太烂, 优化的空间没有前端那么大.
前端的优化可以搜索关键词 "yahoo前端优化的黄金法则". 而后端的优化, 设计方式上更有优化空间, 比如说多用缓存, 多用几级缓存, 一句话, 尽量避免查询数据库.PHP代码本身的优化也有很多, 下面给几条:
少用include_once/require_once多用include/require, 理由是前者会查找有无载入.所以更耗时.
include_once/require_once
include/require
使用关联数组的key时, 用引号括起来. 因为没有引号会被当成常量, 如果常量不存在, 就会被转成字符串, 并抛出一个notice级别的错误.
key
notice
多用PHP自带函数, 而不是用PHP自己再实现一个.
写循环语句的时候, 不要在判断条件中使用函数. 这样会使用N次这个函数.
其实还有很多, 只是一时想不起来了. 题主有兴趣可以自己上搜索引擎搜.
而数据库查询语句的优化也是非常重要的. 同样是mysql数据库, 能支撑alibaba/facebook这样的巨型公司, 但是连你的小网站可能都撑不起.
上PHP7,开ZendOpcache,对WordPress这些复杂一些的PHP Web程序效果明显.
在Oreilly的《PHP编程》中有一段话:
优化执行时间——缩短脚本执行时间有一些小建议:1、避免使用printf() ,只用echo();2、避免在循环中重新计算值,因为php不会移除循环不变量。
for($i = 0 ; $i<count($array) ; $i++){ //不要这么做 }
$num = count($array); for($i = 0 ; $i<$num ; $i++){ //应该这样做 }
3、只包含必要的文件。分离出包含文件中确定要用的函数,将他们放在一起。虽然代码维护多了一点,但解析你不用的代码也是浪费的。4、如果用了数据库,要使用持久化数据库连接——启动和关闭数据库是比较慢的。5、当可以用简单的字符串操作函数时,就不要用正则表达式。例如换一个字符,应该str_replace()而不是preg_replace()。
优化内存占用1、用数字替代字符串
for($i = "0" ; $i<"10" ; $i++){ //不好 } for($i = 0 ; $i<10; $i++){ //好 }
2、当处理完一个大字符串,把保存字符串的变量设置为空,这会释放内存以便重用;3、只包含必需的文件。用include_once和require_once,替代include和require。4、处理完mysql结果集后立刻释放。在内存中保存使用后的结果集没有任何好处。
这个话题太宽了,个人感觉PHP代码只要不写得太蠢,都不会有太大的问题。网站更需要优化的可能是前端和数据库,前端资源会拖累网站速度,数据库查询更能影响网站的响应速度。感觉后端更多的时间都在于如何优化数据库上。
最简单粗暴的做法,开启opcahce
可以加上缓存 redis memcache 等 一般WEB性能的瓶颈在数据库 mysql的优化也是很重要的 SQL语句可以用explain 看看执行计划 优化SQL 优化索引
网站的优化范围太大. 其实优化PHP代码得到的性能提升远不如优化前端. 毕竟网络请求更耗时, 动辄几秒的请求, 更有优化空间, 而PHP代码只要写的不是太烂, 优化的空间没有前端那么大.
前端的优化可以搜索关键词 "yahoo前端优化的黄金法则".
而后端的优化, 设计方式上更有优化空间, 比如说多用缓存, 多用几级缓存, 一句话, 尽量避免查询数据库.
PHP代码本身的优化也有很多, 下面给几条:
少用
include_once/require_once
多用include/require
, 理由是前者会查找有无载入.所以更耗时.使用关联数组的
key
时, 用引号括起来. 因为没有引号会被当成常量, 如果常量不存在, 就会被转成字符串, 并抛出一个notice
级别的错误.多用PHP自带函数, 而不是用PHP自己再实现一个.
写循环语句的时候, 不要在判断条件中使用函数. 这样会使用N次这个函数.
其实还有很多, 只是一时想不起来了. 题主有兴趣可以自己上搜索引擎搜.
而数据库查询语句的优化也是非常重要的. 同样是mysql数据库, 能支撑alibaba/facebook这样的巨型公司, 但是连你的小网站可能都撑不起.
上PHP7,开ZendOpcache,对WordPress这些复杂一些的PHP Web程序效果明显.
在Oreilly的《PHP编程》中有一段话:
优化执行时间——缩短脚本执行时间有一些小建议:
1、避免使用printf() ,只用echo();
2、避免在循环中重新计算值,因为php不会移除循环不变量。
3、只包含必要的文件。分离出包含文件中确定要用的函数,将他们放在一起。虽然代码维护多了一点,但解析你不用的代码也是浪费的。
4、如果用了数据库,要使用持久化数据库连接——启动和关闭数据库是比较慢的。
5、当可以用简单的字符串操作函数时,就不要用正则表达式。例如换一个字符,应该str_replace()而不是preg_replace()。
优化内存占用
1、用数字替代字符串
2、当处理完一个大字符串,把保存字符串的变量设置为空,这会释放内存以便重用;
3、只包含必需的文件。用include_once和require_once,替代include和require。
4、处理完mysql结果集后立刻释放。在内存中保存使用后的结果集没有任何好处。
这个话题太宽了,个人感觉PHP代码只要不写得太蠢,都不会有太大的问题。网站更需要优化的可能是前端和数据库,前端资源会拖累网站速度,数据库查询更能影响网站的响应速度。感觉后端更多的时间都在于如何优化数据库上。
最简单粗暴的做法,开启opcahce
可以加上缓存 redis memcache 等 一般WEB性能的瓶颈在数据库 mysql的优化也是很重要的
SQL语句可以用explain 看看执行计划 优化SQL 优化索引