质量属性--性能--3

性能与时间有关。性能与事件发生时,将要耗费多长时间做出响应有关。
性能是指系统的响应能力----即对外部刺激出反应时所需要的时间或在某段时间内所处的事数。
性能的战术:
资源需求--提高计算效率(改进算法),减少计算开销(旁路引用),管理事件率率(降低采样频率),绑定执行次数(限制迭代次数),绑定队列大小。
资源管理--引入并发性,维护数据或计算的多个副本(客户端缓存),增加可用资源。
资源仲裁--先进先出,固定优先级调度(基于语义重要性、期限单调或速率单调),动态优先级调度(循环调度,最早的最后期限优先),静态调度(先发制人点和资源分配顺序脱机确定)。
***********************
***********************
【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);

结果:

猜你喜欢

转载自www.cnblogs.com/daisy99lijing/p/12418301.html