PHP项目怎样做性能优化,思路是什么
Admin 2022-11-17 群英技术资讯 272 次浏览
在这篇文章中我们来了解一下“PHP项目怎样做性能优化,思路是什么”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
问题背景
在开发好页面后,如何让页面更快更好的运行,是区分一个程序猿技术水平和视野的一个重要指标。所以面试时,面试官总会问你一个问题,如何进行性能优化呢?
性能优化是什么?
从前端的角度来说,性能优化可以分为两个方向。从用户角度来看,一个是页面加载的很快,另一个是页面使用起来很流畅。因此,对性能优化的探索,我们可以分为页面加载时间跟页面运行效率两个方向来进行研究。
从浏览器打开到页面渲染完成,花费了多少时间
浏览器解析->查询缓存->dns查询->建立链接->服务器处理请求->服务器发送响应->客户端收到页面->解析HTML->构建渲染树->开始显示内容(白屏时间)->首屏内容加载完成(首屏时间)->用户可交互(DOMContentLoaded)->加载完成(load),如果我们要进行加载时间的优化,我们需要从这里的每一个步骤都去思考,去总结,而避免东凑一点,西凑一点。
页面加载时间监控
在对这些环节进行优化之前,我们需要知道监控这些环节花费了多少时间。
可以获取到很多页面加载相关的数据。比较常用的有
DNS解析时间: domainLookupEnd - domainLookupStart
TCP建立连接时间: connectEnd - connectStart
白屏时间: r
esponseStart - navigationStartdom
渲染完成时间: domContentLoadedEventEnd - navigationStart
页面onload时间: loadEventEnd - navigationStart
如果不使用该API,可以以服务器渲染返回的时间,或是SPA路由跳转离开的时间为起点,domContentLoaded,load等事件为结束点进行记录。或是直接上google analytics。
服务器部分优化要点
后端部分可以对缓存,dns查询时间,链接时间,处理请求时间,响应时间等进行优化。
dns查询时间可以使用httpdns或是dns预加载,域名收敛等手段优化。
建立连接的重点是长连接和链接复用,keep-alive,long-polling,http-straming,websocket或是自己写过别的协议,更好的是直接上http2。为了优化链接的环节,前端这里还需要对资源使用cdn,雪碧图,代码合并等手段。
服务器处理请求这里可以优化的点也不少,值得注意的就是移动端访问PC端页面需要跳转到移动端页面时,要再服务器端使用302跳转,不要在前端进行跳转。还有就是启用hsts,要求浏览器在之后的访问使用https,减少无谓的http跳转https,同时还可以防止ssl剥离攻击,提升安全性。
服务器发送响应环节,可以使用Transfer-Encoding=chunked,多次返回响应,具体操作查询bigpipe。还有就是减小cookie的体积等等。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文实例讲述了laravel 框架结合关联查询 when()用法。分享给大家供大家参考,具体如下:
LRU是Least Recently Used 近期最少使用算法, 内存管理的一种页面置换算法。本文将详解LRU算法的原理以及实现,感兴趣的小伙伴可以学习一下
对于反射,很多人可能会想到膝跳反射。其实在编程语言中也有反射,这篇文章就给大家介绍简单的介绍一下PHP的反射机制,带大家回顾一下反射的基础知识。
在laravel中,IOC控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度,就是一个类把自己的的控制权交给另外一个对象,类间的依赖由这个对象去解决。
本篇文章小编给大家分享一下golang防缓存击穿singleflight代码实现方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008