性能与时间有关。性能与事件发生时,将要耗费多长时间做出响应有关。
性能是指系统的响应能力----即对外部刺激出反应时所需要的时间或在某段时间内所处的事数。
性能是指系统的响应能力----即对外部刺激出反应时所需要的时间或在某段时间内所处的事数。
性能的战术:
资源需求--提高计算效率(改进算法),减少计算开销(旁路引用),管理事件率率(降低采样频率),绑定执行次数(限制迭代次数),绑定队列大小。
资源管理--引入并发性,维护数据或计算的多个副本(客户端缓存),增加可用资源。
资源仲裁--先进先出,固定优先级调度(基于语义重要性、期限单调或速率单调),动态优先级调度(循环调度,最早的最后期限优先),静态调度(先发制人点和资源分配顺序脱机确定)。
资源需求--提高计算效率(改进算法),减少计算开销(旁路引用),管理事件率率(降低采样频率),绑定执行次数(限制迭代次数),绑定队列大小。
资源管理--引入并发性,维护数据或计算的多个副本(客户端缓存),增加可用资源。
资源仲裁--先进先出,固定优先级调度(基于语义重要性、期限单调或速率单调),动态优先级调度(循环调度,最早的最后期限优先),静态调度(先发制人点和资源分配顺序脱机确定)。
***********************
***********************
【web性能】Web performance 获取web各个阶段响应时间:DNS解析时间、TCP建立连接时间、首页白屏时间、dom渲染完成时间、页面onload时间等
准确地测量web应用程序的性能特性是使web应用程序更快的一个重要方面
******************************
******************************
那么我们怎么知道一个网站加载定的时间呢?
我们可以添加时间戳标记
下面的JavaScript显示了一个简单的尝试来度量完全加载页面所需的
1 <html>
3 <head>
5 <title>stark wang</title>
7 <script type="text/javascript">
9 var start = new Date().getTime();
11 function onLoad() {
13 var now = new Date().getTime();
15 var latency = now - start;
17 alert("page loading time: " + latency);
19 }
21 </script>
23 </head>
25 <body onload="onLoad()">
27 <!- Main page body goes from here. -->
29 </body>
31 </html>
结果:
再比如:
上面的脚本计算在执行头部的第一个JavaScript后加载页面所需的时间,但是它并没有给出从服务器获取页面所需的时间,或者页面的初始化生命周期。
******************************************
******************************************
1 <!DOCTYPE html>
3 <html lang="en">
5 <head>
7 <meta charset="UTF-8">
9 <title>stark wang</title>
11 </head>
13 <script>
15 function showNavigationDetails() {
17 // 入口
19 const [entry] = performance.getEntriesByType("navigation");
21 // 在控制台可以看到很多参数
23 console.table(entry.toJSON());
25 }
27 </script>
29 <body onload="showNavigationDetails()">
33 </body>
35 </html
>结果:
自己去测试
这个接口省去我们很多时间,不再需要获取时间戳了
****************************
***************************
Python获取WEB各阶段响应时间
****************************
****************************
1 let timing = performance.timing,
3 start = timing.navigationStart,
5 dnsTime = 0,
7 tcpTime = 0,
9 firstPaintTime = 0,
11 domRenderTime = 0,
13 loadTime = 0;
17 dnsTime = timing.domainLookupEnd - timing.domainLookupStart;
19 tcpTime = timing.connectEnd - timing.connectStart;
21 firstPaintTime = timing.responseStart - start;
23 domRenderTime = timing.domContentLoadedEventEnd - start;
25 loadTime = timing.loadEventEnd - start;
29 console.log('DNS解析时间:', dnsTime , '\nTCP建立时间:', tcpTime, '\n首屏时间:', firstPaintTime,
31 '\ndom渲染完成时间:', domRenderTime, '\n页面onload时间:', loadTime);
结果: