大牛分享,提高工程性能的7个简单技巧

这篇具有很好参考价值的文章主要介绍了大牛分享,提高工程性能的7个简单技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

软件性能和弹性(恢复能力)是用户体验的关键组成部分,但随着软件行业采用DevOps,它开始在性能和弹性方面出现不足。在软件完全失败之前,性能问题经常被忽略。

但是,我们都知道性能不会突然降低。随着软件通过迭代发布,每次添加更多代码时都会产生性能成本,以及事情可能失败的额外逻辑循环,从而影响整体稳定性。

由于单个代码更改,几乎不会出现致残性能或软件可用性问题。相反,它通常会被一千次削减而死亡。通过严格的实践来增强性能和弹性,并持续测试这些方面,是在问题开始之前解决问题的好方法。与测试的许多方面一样,性能实践的质量远比正在执行的测试数量重要得多。

大牛分享,提高工程性能的7个简单技巧

以下是推动高效性能和恢复能力工程实践的七个简单技巧

1、使用基准测试,一次只更改一个变量
在性能和弹性工程中,基准测试是一种标准化问题或测试,可作为评估或比较的基础。我们定义这样的测试,以便我们可以将它们相互比较。为了进行比较,我们更改了一个元素并测量了该更改对另一个测试的影响。

在我们的持续集成过程中,我们对软件的新版本进行基准测试,以衡量代码更改如何影响我们软件的性能及弹性。在其他一些基准测试中,我们希望衡量我们的软件在不同大小的硬件上的性能表现。由于我们还支持多种体系结构,平台,操作系统,数据库和文件系统,因此我们希望不仅能够定义如何获得最佳性能和可靠性,还能够将它们相互比较。

这些都是有效的基准实践,因为我们改变了一个元素并衡量了这一变化的影响。但是,如果我们要更改测试中的软件版本和我们同时测试的硬件,然后尝试比较结果,我们将无法断定观察到的任何更改是由于一个更改,或者另一个,或两者的结合 - 通常,变化的组合将产生与单独发生时不同的影响。 

在性能工程中,尝试进行“苹果对苹果”比较,使用基准测试,并在要比较的多个测试版本中仅更改一个变量。 

2、监控内存,CPU,磁盘和网络使用情况
由于性能和弹性工程是一项科学努力,只有通过寻求以可重复的方式客观地解释我们观察到的事件才能实现。这意味着我们需要衡量。

对于性能工程,我们不仅要测量我们正在测试的软件,还要测量我们正在测试它的硬件。监控内存,CPU,磁盘和网络使用情况是我们分析的关键。我们还必须了解这些资源是如何分配的,因为它与我们的处理需求有关。

在信息技术方面,我们总是将数据从一个点传输到另一个点并对其进行转换。在这一过程中, 我们增加了冗余;一些冗余是浪费或开销,其中一些是必要的,因为它使我们能够确保数据完整性和安全性。性能工程就是消除开销和增加数据完整性。 

3、每次测试至少运行三次
在我们比较测试结果之前,我们需要确保我们想要比较的数字是值得信赖的。每次我们进行测试时,我们都希望如果我们在不同时间在相同条件下运行相同的测试,我们应该得到相同的结果和指标。

但是当我们第一次进行测试时,我们在新条件下没有测试历史记录来决定我们的结果是否可重复。请记住,以前的一个组件不同的测试不能考虑结果的可重复性;只有多次执行相同的测试才能让我们对结果有信心。 

我们可以信任的结果是关键因素,因此我建议你不要考虑性能比较测试的结果,除非您至少执行了三次测试。五次甚至更好的保险测试。对于向客户发布或一般可用性版本,还需要执行更多。 

4、实现低于3%的结果差异
仍然在结果的主题上,我们必须证明在不同时间重复的相同测试应该产生相同的结果。一个关键指标是主要指标的方差(也称为可变性)。方差是一个度量,表示同一测试的最佳和更差执行的百分比差异。

让我们考虑一个性能测试,其中主要指标是事务中的吞吐量测量。如果我们的测试具有每秒100个事务的最差执行吞吐量和每秒110个事务的最佳执行吞吐量,那么我们的差异将为10%:

方差 = (较大的值–较低的值)/较低的值
(110 - 100)/ 100 = 0.1

同样,对于弹性测试,其中主要指标是以秒为单位的恢复时间,如果我们的测试具有最差恢复时间为5分钟且最佳时间为4分钟,则我们的方差将为25%。

方差是衡量我们的结果是否可信的关键指标。方差小于3%意味着我们的结果是可靠的。3%到5%之间的方差意味着结果是可接受的和可重复的,但是在测试,环境或测试软件的稳定性方面仍有改进的余地。6%到10%之间的方差意味着我们不能重复我们的结果,应该积极调查我们为什么会有如此高的方差。任何方差大于10%的测试都不能用于性能考虑。                      

5、运行负载测试至少半小时
负载测试通常旨在测量系统在特定用途下的容量。目标是让该系统在最短的时间内处理最大的工作负载而不会失败。对于这些测试的测量来说,实际上有任何基础,在我看来,性能测试运行必须至少持续30分钟。

当你考虑它时,你用15分钟负载测试证明的唯一一件事就是系统可以处理十五分钟的负载。此外,运行越短,它将受到人为变化的影响越大。

在性能工程中,我们还需要预热期,因为第一次执行时首次运行总是较慢。即使在预热系统上,测试的前几个交易可能会更慢,并且在多次运行之间不一定相同 - 因此会出现人为的差异。在30分钟或更长时间的测试中, 这些测试不会显示出来, 诱发差异的可能性也要低得多。

如果负载测试持续时间低于30分钟,从性能工程的角度来看,其结果将没有多大意义。测试至少半小时不包括任何预热期。

6、证明您的负载结果可以持续至少两个小时
我再次建议至少半小时。正如前面所述,只有30分钟的负载测试证明,系统可以承受30分钟的负载。虽然30分钟将足以检测到大多数新的性能变化,但为了使这些测试合法,还必须能够证明它们可以在相同的负载下运行至少两个小时。

如果没有空间耗尽, 高峰负荷应该是无限期可持续的。证明负载可以运行两个小时是很好的开始。我建议将目标目标为6、12和24小时作为里程碑,并在可能的情况下证明在这些负载下可以连续运行5天。

请注意,这些负载耐久性测试旨在证明负载结果的可持续性。它们不需要针对每一个代码更改运行,而只是为了证明负载数量的可持续性。

从证明两个小时是可持续的开始。任何较少的内容和性能数字都不应该用于性能发布, 也绝对不是出于容量考虑。

7、确保良好的自动化程度
没有良好的自动化,你就无法获得成功的性能工程。你是否花费更多时间分析测试结果(良好的自动化),或执行测试并对现有自动化进行改进(自动化程度较低)?

如果您认为可以改进自动化实践,请从以下七个原则开始:

  • 了解你自动化的原因
  • 了解自动化的步骤
  • 不要只考虑快乐的路径或不快乐的路径
  • 构建块可以叠加在一起
  • 尽早规划自动化
  • 设置自动化场景
  • 从自动化中收集指标

设计你的测试以获得有意义的结果
解决软件性能和弹性的最有效方法是通过有效的测试。但重新考虑和重组你的测试不必过于复杂。遵循这七个简单的技巧将及早发现很多性能问题--在它们成为真正的问题之前。

 

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

大牛分享,提高工程性能的7个简单技巧大牛分享,提高工程性能的7个简单技巧

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!
大牛分享,提高工程性能的7个简单技巧文章来源地址https://www.toymoban.com/news/detail-494599.html

到了这里,关于大牛分享,提高工程性能的7个简单技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT高质量prompt技巧指南-《向 ChatGPT 提问获取高质量答案的艺 术:Prompt 工程技术完全指南》图书分享

    一、图书简介:本书是一本全面的指南,介绍了各种 Prompt 技术的理解和利用,用于从 ChatGPT中生成高质量的答案。 我们将探讨如何使用不同的 Prompt 工程技术来实现不同的目标。ChatGPT 是一 种先进的语言模型,能够生成类似人类的文本。然而,了解正确的提问方式以获 取我

    2024年02月03日
    浏览(59)
  • 学习SpringBoot入门知识,附带教程源码分享,快速掌握开发技巧-【imooc-java2021】体系课-Java工程师 2022版

    以下截图自 Spring Boot 官方文档: 翻译整理一下,内容如下: Spring Boot 是基于 Spring 框架基础上推出的一个全新的框架, 旨在让开发者可以轻松地创建一个可独立运行的,生产级别的应用程序。 基于 Spring Boot 内部的自动化配置功能,开发者可以在\\\"零\\\"配置, 或者只需要添加很少

    2024年02月06日
    浏览(68)
  • 提高 React 性能的技巧

    1.解决重复渲染问题 我们大多数人都知道虚拟 DOM 是如何工作的,但最重要的是检测何时触发树比较。当我们可以跟踪它时,我们可以控制组件的重新渲染,并最终防止意外的性能流。令人惊讶的是,它并不难捕捉。首先,将 React Devtool 扩展添加到浏览器。 然后打开浏览器开

    2024年02月09日
    浏览(74)
  • 提高C++运行效率技巧

    在C++中,通过查表(Look-Up Table, LUT)来计算三角函数的数值是一种节省时间的方法,尤其是在需要快速计算且对精度要求不是特别高的情况下。这种方法通常用于嵌入式系统或实时应用,因为这些场景中对计算速度有较高要求,而硬件资源可能有限。 查表法的基本思想是预先

    2024年02月20日
    浏览(38)
  • MYSQL | 提高SQL性能的技巧

      写SQL是开发人员的经常要面对的,考虑SQL的性能是非常重要的: 提升查询效率:   SQL查询的性能直接影响系统的响应时间。优化SQL可以减少查询的执行时间,提高系统的响应速度,提升用户体验。 减少系统负载:   性能低下的SQL语句可能会占用大量的系统资源,导

    2024年02月16日
    浏览(43)
  • 5个编写技巧,有效提高单元测试实践

    “在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、抽象类、或者派生类中的方法。

    2023年04月26日
    浏览(44)
  • 查询效率至少提高4倍的MySQL技巧

    SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:select id from t where num in(1,2,3) 对于连续的数值,能用between就不要用in了;再或者使用连接来替

    2024年04月26日
    浏览(36)
  • 深度学习模型优化:提高训练效率和精度的技巧

    🎉欢迎来到AIGC人工智能专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如

    2024年02月11日
    浏览(49)
  • 提高代码效率的6个Python内存优化技巧

    当项目变得越来越大时,有效地管理计算资源是一个不可避免的需求。Python与C或c++等低级语言相比,似乎不够节省内存。 但是其实有许多方法可以显著优化Python程序的内存使用,这些方法可能在实际应用中并没有人注意,所以本文将重点介绍Python的内置机制,掌握它们将大

    2024年01月18日
    浏览(46)
  • Spring Cache:提高应用性能的策略和技巧

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包