去面试之性能问题

Posted lemonib

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了去面试之性能问题相关的知识,希望对你有一定的参考价值。

1.网络传输性能优化

1.1.浏览器缓存

1.2.资源打包压缩

1.3.图片资源优化

1.4.网络传输性能检测工具——Page Speed

1.5.使用CDN

 

2.页面渲染性能优化

2.3.减少重排与重绘、

2.4.优化策略

(一)CSS属性读写分离:浏览器每次对元素样式进行读操作时,都必须进行一次重新渲染(重排 + 重绘),所以我们在使用JS对元素样式进行读写操作时,最好将两者分离开,先读后写,避免出现两者交叉使用的情况。最最最客观的解决方案,就是不用JS去操作元素样式,这也是我最推荐的。

(二)通过切换class或者使用元素的style.csstext属性去批量操作元素样式。

(三)DOM元素离线更新:当对DOM进行相关操作时,例、appendChild等都可以使用Document Fragment对象进行离线操作,带元素“组装”完成后再一次插入页面,或者使用display:none 对元素隐藏,在元素“消失”后进行相关操作。

(四)将没用的元素设为不可见:visibility: hidden,这样可以减小重绘的压力,必要的时候再将元素显示。

(五)压缩DOM的深度,一个渲染层内不要有过深的子元素,少用DOM完成页面样式,多使用伪元素或者box-shadow取代。

(六)图片在渲染前指定大小:因为img元素是内联元素,所以在加载图片后会改变宽高,严重的情况会导致整个页面重排,所以最好在渲染前就指定其大小,或者让其脱离文档流。

(七)对页面中可能发生大量重排重绘的元素单独触发渲染层,使用GPU分担CPU压力。(这项策略需要慎用,得着重考量以牺牲GPU占用率为代价能否换来可期的性能优化,毕竟页面中存在太多的渲染层对于GPU而言也是一种不必要的压力,通常情况下,我们会对动画元素采取硬件加速。)

以上是关于去面试之性能问题的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

面试之线程池

面试之 JVM 调优指南

Android 高频面试之必考Java基础

性能测试分析之HTTP资源消耗探究

开发者面试之JVM调优指南