带你读《现代Javascript高级教程》三十二、Performance API: 提升网页性能的利器(2)

简介: 带你读《现代Javascript高级教程》三十二、Performance API: 提升网页性能的利器(2)

带你读《现代Javascript高级教程》三十二、Performance API: 提升网页性能的利器(1)https://developer.aliyun.com/article/1349482?groupCode=tech_library


3) memory

performance.memory 属性提供了与内存使用情况相关的性能指标,可以帮助我们了解页面的内存限制、已使用内存、垃圾回收次数等信息。

 

以下是一些常用的 memory 属性:

  • performance.memory.jsHeapSizeLimit:表示 JavaScript 堆的大小限制。
  • performance.memory.usedJSHeapSize:表示已使用的 JavaScript 堆大小。
  • performance.memory.totalJSHeapSize:表示 JavaScript 堆的总大小。

这些 memory 属性可以用于监控页面的内存使用情况,及时发现内存泄漏或过度使用内存的问题。

 

示例代码:

 

console.log(`JavaScript 堆大小限制: ${performance.memory.jsHeapSizeLimit}`);
console.log(`已使用的 JavaScript 堆大小: ${performance.memory.usedJSHeapSize}`);
console.log(`JavaScript 堆的总大小: ${performance.memory.totalJSHeapSize}`);

4) navigationTiming

performance.getEntriesByType('navigation') 方法返回与页面加载时间相关的详细信息,提供了更详细的页面加载时间指标,如重定向时间、解析 DOM 树时间、首次渲染时间等。

 

以下是一些常用的 navigationTiming 属性:

  • navigationTiming.redirectTime:表示重定向时间。
  • navigationTiming.domInteractiveTime:表示 DOM 解析完成的时间。
  • navigationTiming.domContentLoadedTime:表示 DOMContentLoaded 事件触发的时间。
  • navigationTiming.loadEventTime:表示 load 事件触发的时间。

这些 navigationTiming 属性可以用于更细粒度地分析页面加载的各个阶段所花费的时间。

 

示例代码:

 

const entries = performance.getEntriesByType('navigation');const navigationTiming = entries[0];
console.log(`重定向时间: ${navigationTiming.redirectTime}`);
console.log(`DOM 解析完成时间: ${navigationTiming.domInteractiveTime}`);
console.log(`DOMContentLoaded 事件触发时间: ${navigationTiming.domContentLoadedTime}`);
console.log(`load 事件触发时间: ${navigationTiming.loadEventTime}`);

5 其他方法

Performance API还提供了一些其他方法,用于测量和记录时间戳、添加标记、计算代码执行时间等。

 

以下是一些常用的方法:

  • performance.now():返回当前时间戳,可用于测量代码执行时间。
  • performance.mark():添加一个时间戳标记,用于记录关键时刻。
  • performance.measure():计算两个时间戳标记之间的时间间隔。
  • performance.getEntriesByName():获取指定名称的时间戳标记信息。

这些方法可以帮助我们精确测量代码的执行时间和关键事件的发生时间。

 

示例代码:

 

const startTime = performance.now();
// 执行一些耗时的操作
const endTime = performance.now();const executionTime = endTime - startTime;
console.log(`代码执行时间: ${executionTime} 毫秒`);
performance.mark('start');// 执行一些操作
performance.mark('end');
performance.measure('操作耗时', 'start', 'end');const measurements = performance.getEntriesByName('操作耗时');
console.log(`操作耗时: ${measurements[0].duration} 毫秒`);


带你读《现代Javascript高级教程》三十二、Performance API: 提升网页性能的利器(3)https://developer.aliyun.com/article/1349480?groupCode=tech_library

相关文章
|
4天前
|
前端开发 JavaScript
结合CSS和JavaScript创建动态网页
【4月更文挑战第21天】结合CSS和JavaScript创建动态网页
19 4
|
3天前
|
设计模式 JavaScript API
Vue.js的provide/inject API实现了依赖注入
【5月更文挑战第17天】Vue.js的provide/inject API实现了依赖注入,允许父组件向深层子组件传递依赖,降低耦合,提高代码可维护性和测试性。通过provide选项提供依赖,如`provide: {foo: 'foo', bar: this.bar}`,子组件通过inject选项接收,如`inject: ['foo', 'bar']`。适用于跨组件共享数据、插件开发和高阶组件。然而,应谨慎使用以防止过度复杂化代码结构。
13 0
|
3天前
|
前端开发 JavaScript UED
深入理解 JavaScript 同步和异步,让网页灵动起来!
深入理解 JavaScript 同步和异步,让网页灵动起来!
|
4天前
|
JavaScript 前端开发 网络安全
【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程
【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程
16 4
|
4天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
32 10
|
2天前
|
前端开发 JavaScript
JavaScript新科技:PostCSS的安装和使用,2024年最新2024网易Web前端高级面试题总结
JavaScript新科技:PostCSS的安装和使用,2024年最新2024网易Web前端高级面试题总结
|
2天前
|
JavaScript 前端开发
web前端JS高阶面试题(1),高级开发工程师面试
web前端JS高阶面试题(1),高级开发工程师面试
|
3天前
|
前端开发 JavaScript UED
CSS顶部与JS后写:网页渲染的奥秘
CSS顶部与JS后写:网页渲染的奥秘
|
4天前
|
缓存 编解码 JavaScript
提升JavaScript游戏性能的关键点
【5月更文挑战第14天】提升JavaScript游戏性能的关键点包括:使用requestAnimationFrame优化动画流畅度;减少DOM操作,利用DocumentFragment或虚拟DOM;使用Canvas/WebGL高效渲染;优化图像资源,压缩图片并使用雪碧图;分层渲染和视口裁剪降低无效计算;借助Web Workers进行后台计算;缓存不变的计算结果;合理使用事件监听器并采用事件委托;定期进行性能分析以发现和解决问题。不断测试与调整,以实现最佳性能。
11 2