最后
全网独播-价值千万金融项目前端架构实战
从两道网易面试题-分析JavaScript底层机制
RESTful架构在Nodejs下的最佳实践
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一线互联网企业如何初始化项目-做一个自己的vue-cli
思维无价,看我用Nodejs实现MVC
代码优雅的秘诀-用观察者模式深度解耦模块
前端高级实战,如何封装属于自己的JS库
VUE组件库级组件封装-高复用弹窗组件
=============
重点关注指标Waiting (TTFB),TTFB代表第一个字节到达的时间。此时间包括一次往返延迟和服务器准备响应所花费的时间。可以近似的认为是服务端耗时。
如果网络情况不好或者响应数据过大,则Content Download耗时会长一些,这时候应该考虑压缩响应.
Timing
======
开发者工具中Network中显示了当前页中调用的网络资源,点击资源可以查看资源的详情,其中Timing是资源调用时的耗时情况。
-
Queueing. 【排队中】浏览器在以下情况下将请求排队: 有更高优先级的请求. 已为该来源打开了六个TCP连接,这是限制。仅适用于HTTP/1.0和HTTP/1.1. 浏览器正在磁盘缓存中短暂分配空间.
-
Stalled. 【停止】该请求可能由于排队中描述的任何原因而停止.
-
Proxy negotiation. 【代理协商】浏览器正在与代理服务器协商请求.
-
Request sent. 【发送请求】该请求正在发送.
-
Waiting (TTFB). 【等待中】浏览器正在等待响应的第一个字节。TTFB代表第一个字节到达的时间。此时间包括一次往返延迟和服务器准备响应所花费的时间.
-
Content Download. 【响应内容下载】浏览器正在接收响应.
其他可能出现的
=======
-
DNS Lookup. 【DNS】浏览器正在解析请求的IP地址.
-
Initial connection. 【初始化连接】浏览器正在建立连接,包括TCP握手/重试和协商SSL.
通过httpstat工具分析
==============
httpstat git地址
如果是在Linux服务器上进行调用,则可以使用httpstat。
安装
==
直接下载脚本
======
wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py
复制代码
通过pip
=====
pip install httpstat
复制代码
Mac
===
brew install httpstat
复制代码
使用
==
httpstat可以使用cURL的参数。
httpstat www.baidu.com
httpstat 127.0.0.1/post -X POST --data-urlencode “id=1” -v
复制代码
Server Processing可以近似的认为是服务端耗时。
服务端到底慢在哪里?
==========
打印耗时日志?
=======
StopWatch stopWatch = new StopWatch();
stopWatch.start();
// …
stopWatch.stop();
LOGGER.info(“[某某某业务] - [Time:{}ms]”, stopWatch.getLastTaskTimeMillis());
复制代码
脑子瞬间一热就会使用的方法,简单直接,但是如果定位不准确,你可能要加很多这种日志。
还是用火焰图吧
=======
让软件执行情况可视化,是性能分析、调试的利器
火焰图的生成工具很多,比如Async Profiler、linux-perl,网上也有很多关于这方面的介绍,IDEA也集成Async Profiler,这个很方便。
IntelliJ IDEA中的火焰图
==================
打开火焰图
=====
如果没有开启,则点击+号,进行添加。
文末
我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。
首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。
更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
前端面试题汇总
JavaScript
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
性能
linux
前端资料汇总