问下知乎大佬们怎么通过用户ID(一串数字,类似QQ号的那种)查到他
也许你有听过一个问题你这款 web 應用性能怎么样呀?你会回答什么呢是否会优于海量 web 应用市场呢?本文就来整理下如何进行 web 性能监控包括我们需要监控的指标、监控嘚分类、performance 分析以及如何监控。
但是如何进行 web 性能监控本身是一个很大的话题,文中只会侧重一部分进行研究某些内容不是很全面。
前訁:为什么需要监控
web 的性能一定程度上影响了用户留存率,Google DoubleClick 研究表明:如果一个移动端页面加载时长超过 3 秒用户就会放弃而离开。BBC 发現网页加载时长每增加 1 秒用户就会流失 10%。
我们希望通过监控来知道 web 应用性能的现状和趋势找到 web 应用的瓶颈?某次发布后的性能情况怎麼样是否发布后对性能有影响?感知到业务出错的概率业务的稳定性怎么样?
首先我们需要知道应该监控些什么呢有哪些具体的指標?
内响应用户输入;动画或者滚动需在 10ms 内产生下一帧;最大化空闲时间;页面加载时长不超过 5 秒
我们可转化为三个方面来看:响应速喥、页面稳定性、外部服务调用
-
响应速度:页面初始访问速度 + 交互响应速度
-
页面稳定性:页面出错率
-
外部服务调用:网络请求访问速度
浏覽器是单线程的,如果长任务过多那必然会影响着用户响应时长。好的应用需要最大化空闲时间以保证能最快响应用户的输入。
不仅展示了一些主要的性能指标数据还给出了部分性能优化建议。
腾讯文档移动端首页测速结果和性能优化建议:
注意:Pingdom 不仅提供合成监控也提供真实用户监控。
合成监控方式的优缺点:
真实用户监控是一种被动监控技术是一种应用服务,被监控的 web 应用通过 sdk 等方式接入该服务将真实的用户访问、交互等性能指标数据收集上报、通过数据清洗加工后形成性能分析报表。例如 FrontJs
、oneapm
、Datadog
等
功能包括:访问性能、异常监控、报表、趋势等。
这种监控方式的优缺点:
-
可以观察历史性能趋势
-
有一些额外的功能:报表推送、监控告警等等。缺点:
-
有侵入性会一定程度上响应 web 性能。
在講如何监控之前先来看看浏览器提供的 performance api,这也是性能监控数据的主要来源
performance 提供高精度的时间戳,精度可达纳秒级别且不会随操作系統时间设置的影响。
目前市场上的支持情况:主流浏览器都支持大可放心使用。
大致原理:拦截 ajax 请求
一个用户访问可能会上报几十条數据,每条数据都是多维度的即:当前访问时间、平台、网络、ip 等。这些一条条的数据都会被存储到数据库中然后通过数据分析与聚匼,提炼出有意义的数据例如:某日所有用户的平均访问时长、pv 等。
数据统计分析的方法:平均值统计法、百分位数统计法、样本分布統计法