前段性能优化遇到的难点
在实际工作当中,前端性能优化往往比较繁杂,防布局抖动、HTML优化、CSS优化、图片加载优化等等,许多细节都需要顾及。而想要学习和掌握前端性能优化,人们会有许多难点。
第一个难点:成体系的性能优化资料严重缺失。
市面上的“武器库”有很多,你Google搜索性能优化体系会出来很多站点,里面提到各种各样的优化思路,如缓存请求、服务端响应优化、页面解析与处理、静态资源优化等。但这些优化手段充其量只是性能优化中的一个点或几个点,很难形成一个完整的体系,让人一目了然。
第二个难点:性能监控预警平台没有开源,需要自己去开发。
有一定优化经验的前端工程师都知道,性能优化的一个重中之重在于性能监控预警平台。通过它,我们可以第一时间发现问题。但这么一个重要工具,需要你自己去开发。
第三个难点:实践中有许多坑,别人并不会公开分享。
前端指标的制定、采集和上报,你在网上会看到一些资料,比如说,有一个搜索页面,用户在页面还没加载完成的时候,发起了搜索。这时候,你会发现采集到的首屏时间比实际的要长很多。又比如,采集到的异常数据该怎么处理,上报策略怎么设定,这些需要多次趟坑才能了解到。
第四个难点:性能优化立项沟通
性能优化中的立项是个难题,如何从业务的角度来思考性能优化的价值,并说服业务去发起这个项目,这中间有很多的方法。但这些方法你很难通过自己短期思考去获得,而在市面上也很难找到这样的知识。
比如立项正推和反推。所谓正推,就是性能线索-性能问题-性能优化方案-性能收益,根据这个思路来开展立项沟通;反推是预估需要的性能收益-性能优化方案-性能问题-性能线索,以此来确定立项。
说一下自己在大数据项目中的实践。首先:要考虑性能指标,然后:要考虑哪了出了问题,导致性能出问题。这里就需要有大量的日志和监控数据作为佐证。最后:要根据发现的问题考虑优化的策略。比如:有没有预算提高硬件资源。一般很多看似复杂的问题,在硬件内存CPU提升之后就能够迎刃而解。
比如:考虑代码层面上,算法层面等的优化。因为算法时间复杂度很影响或者是制约性能问题。比如:业务层面考虑有没有整合的地方,比如简化业务流程和提高效率。这里其实很大层面,就是并行比串行快。诸如此类,等等。