排查 PHP 网站运行速度慢的原因
首先,使用浏览器的开发人员工具(Chrome)或Firefox的Firebug,确定,问题出在前端,还是后端。查看瀑布图,看看是卡在了服务器处理脚本上(典型特征是文档Waiting的时间特别长),还是前端(大量的图片、大量的JS、好多Flash)。90%网站性能问题是由前端造成的。
若确定是服务器端问题,看看PHP版本是不是过低了、使用XDebug的Profile结合Webgrind等,看看到底哪些函数执行的次数最多、单次时间最长、执行总时间最长,找到根源一击必杀!PHP的编译器不对PHP代码进行任何优化,所以某种意义上蛮考研PHPer的功力。
你的理解不是很全面,主页打开的速度叫页面加载速度:
数据库读取 + 页面读取(html) + 外部链接(js css)+ 图片。
数据库读取:要看你的表的数据库有多大,它才可以显示速度的。
主要是两个方面的:数据库多的时候,查询就慢select;还有,你一个人打开的速度和实际中许多人同时访问你的页面的速度是不一样的。
你的这个速度非常快,原因是你的表内容少,第二个,只有你一个人在访问,并且是本地的,不用下载外部链接和图片。
给你一个参考值,pp主页的加载速度是8s,网易的是10s。
百度主页一位内简单并且优化过,是0.几秒。
网站的速度 一般 是从架构 , 数据库, php代码方面优化的。而php本身没什么优化的,只要按照php的编码 规范来写就ok了;
还有就是做好缓存;
另外就是注意 sql 语句里面的一些 小细节了,原则是:最先出现的条件,一定是过滤和排除掉更多结果的条件;第二出现的次之;以此类推。
例如 有个这样的表
字段a 字段b 字段c
1 7 11
2 8 10
3 9 13
1,SELECT * FROM table WHERE a>’0’ AND b<’1’ ORDER BY c LIMIT 10
2,SELECT * FROM table WHERE b<’1’ AND a>’0’ ORDER BY c LIMIT 10
1 和 2 结果是相同的但是 查询速度就大不相同,由于 表中 b 字段的数据 大部分 都是大于 1的 所以马上可以过滤 大部分 数据 ,所以 2 比较好些
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)