性能测试与调优

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 性能测试与调优

Benchmark.js

性能测试工具

jsPerf.com

jsPerf旨在提供一种简单的方法来创建和共享测试用例,通过运行基准测试来比较不同JavaScript代码段的性能。

尾调用优化 (Tail Call Optimization, TCO)

尾部调用是作为过程的最终操作执行的子例程调用。

尾调用就是一个出现在另一个函数 “结尾” 处的函数调用。这个调用结束后就没有其余事情要做了(除了可能要返回结果值)。

当函数返回之前要评估的最后一件事是函数调用时,可能会发生尾调用优化。在某些情况下,解释器可以重用函数调用的当前堆栈帧而不是创建新的堆栈帧。

非递归的尾调用:

function foo (x) {
  return x
}
function bar (y) {
  return foo( y + 1 )            // 尾调用
}
function baz () {
  return 1 + bar( 40 )          // 非尾调用
}
baz()                           // 42

栈帧

调用一个新的函数需要额外的一块预留内存来管理调用栈,成为栈帧。

小结

对一段代码进行有效的性能测试,特别是与同样代码的另一个选择对比来看看哪种方案更快,需要认真注意细节。

与其打造你自己的统计有效的性能测试逻辑,不如直接使用 Benchmark.js 库,他已经为你实现了这些。但是,编写测试要小心,因为我们很容易就会构造一个看似有效实际却有缺陷的测试,即使是微小的差异也可能扭曲结果,使其完全不可靠。

从尽可能多的环境中得到尽可能多的测试结果已消除硬件 / 设备的偏差,这一点很重要。jsPerf.com 是很好的网站,用于众包性能测试运行。

遗憾的是,很多常用的性能测试执迷于无关紧要的微观性能细节,比如 x++ 对比 ++x。编写好的测试意味着理解如何关注大局,比如关键路径上的优化以及避免落入类似不同的 JavaScript 实现细节这样的陷阱中。

尾调用优化是 ES6 要求的一种优化方法。它使 JavaScript 中原本不可能的一些递归模式变得实际。 TCO 允许一个函数在结尾处调用另一个函数来执行,不需要任何额外资源。这意味着,对递归算法来说,引擎不再需要限制栈深度。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
负载均衡 测试技术 应用服务中间件
性能测试常见瓶颈分析及调优方法总结
性能测试常见瓶颈分析及调优方法总结
361 0
|
7月前
|
监控 数据可视化 Java
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
97 1
|
3月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
114 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
4月前
|
监控 Java 测试技术
实战派必看!Python性能测试中,JMeter与Locust如何助力性能调优
【8月更文挑战第6天】性能优化是软件开发的关键。本文介绍JMeter与Locust两款流行性能测试工具,演示如何用于Python应用的性能调优。JMeter可模拟大量用户并发访问,支持多种协议;Locust用Python编写,易于定制用户行为并模拟高并发。根据场景选择合适工具,确保应用在高负载下的稳定运行。
142 4
|
6月前
|
监控 Java 测试技术
Java性能测试与调优工具使用指南
Java性能测试与调优工具使用指南
|
6月前
|
缓存 Java 测试技术
Spring Boot中的性能测试与调优
Spring Boot中的性能测试与调优
|
7月前
|
缓存 监控 前端开发
【Flutter前端技术开发专栏】Flutter应用的性能调优与测试
【4月更文挑战第30天】本文探讨了Flutter应用的性能调优策略和测试方法。性能调优对提升用户体验、降低能耗和增强稳定性至关重要。优化布局(避免复杂嵌套,使用`const`构造函数)、管理内存、优化动画、实现懒加载和按需加载,以及利用Flutter的性能工具(如DevTools)都是有效的调优手段。性能测试包括基准测试、性能分析、压力测试和电池效率测试。文中还以ListView为例,展示了如何实践这些优化技巧。持续的性能调优是提升Flutter应用质量的关键。
126 0
【Flutter前端技术开发专栏】Flutter应用的性能调优与测试
|
存储 监控 安全
深聊性能测试,从入门到放弃之:如何对IO进行性能调优
深聊性能测试,从入门到放弃之:如何对IO进行性能调优
272 0
|
存储 测试技术
《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——3.1 云上大型赛事压测调优——3.1.1 压力测试基本概念
《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——3.1 云上大型赛事压测调优——3.1.1 压力测试基本概念
149 0
|
SQL 监控 负载均衡
《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——3.1 云上大型赛事压测调优——3.1.2 云上大型赛事压力测试方法论(上)
《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——3.1 云上大型赛事压测调优——3.1.2 云上大型赛事压力测试方法论(上)
132 0