首页 > 其他分享 >压力测试存在的问题

压力测试存在的问题

时间:2023-08-04 11:44:56浏览次数:31  
标签:存在 synchronized CAS 更新 修改 线程 测试 压力 数据

1. 内存溢出问题

  1. 适当加大内存
  2. 移除容器中不经常使用的对象
  3. 尽量不要将容器定义为成员变量
  4. 考虑熔断以及降级

2. 线程安全问题

例:count++,count++操作不是一个原子性操作,也就是说在某一个时刻对某一个操作的执行,有可能被其他的线程打断

  1. 加锁synchronized
  2. AtomicInteger,AtomicInteger使用的是CAS(比较再交换)算法以及自旋机制
    CAS与Synchronized区别
    synchronized是从悲观的角度出发:
    总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。因此synchronized我们也将其称之为悲观锁。jdk中的ReentrantLock也是一种悲观锁。

CAS是从乐观的角度出发:
总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,没有修改就更新,如果被修改就触发自旋机制。CAS这种机制我们也可以将其称之为乐观锁。
CAS存在的问题:ABA问题,修改完后又修改回去
解决方案:添加版本号,除了判断数据还要判断版本号,都一致才可以更新数据

标签:存在,synchronized,CAS,更新,修改,线程,测试,压力,数据
From: https://www.cnblogs.com/insilently/p/17605470.html

相关文章

  • 不要仅限于只做测试工作
    前几天写了篇性能测试如何入门实践的文章,技术交流群有位同学截取了其中一段表达了自己的观点:性能瓶颈定位和优化,应该是研发来做这件事。然后群里其他同学纷纷参与了这个话题的讨论,表达的观点主要有下面几种:现在技术岗位的职责已经没有明确界限了;性能瓶颈定位优化研发来做,那测......
  • Beckhoff EL7037参数设置及寻参模块的测试
    参数设置I/O-Devices-Device3(找到对应的设备)-Term1(EK1100)-Term2(EL7031)-CoeOnline8010:01最大电流设置为600mA;8010:02保持电流设置为300mA;8010:03正常电压设置为24000mV;8010:06满步设置为200,表示1圈走200个脉冲;备注:以上参数和具体电机型号有关。8012:01:操作模式......
  • 如何维护自动化测试
    毫无疑问,自动化测试已改变了软件开发的工作方式。如果不是Selenium自动化测试,测试人员将花费大量精力进行各种各样的无错误Web应用程序测试。有一部分人认为程序最终将为他们完成越来越多测试工作,最终使整个测试过程自动化。但,这并不代表可以一劳永逸!这并不是说他们做不到,越是依赖......
  • 接口测试
    参考文章:https://blog.csdn.net/weixin_42360608/article/details/131482040什么是接口客户端和服务器数据进行交互的口,叫做接口,类似传声筒这玩意接口测试是什么接口测试是一种软件测试方法,用于验证不同软件模块之间的相互通信和协作是否正常,以及接口的输入和输出是否符合预期。在......
  • LabVIEW通过ADS OCX实现与倍福TwinCAT3的通信测试
    LabVIEW通过ADS实现与倍福TwinCAT3通信的方法包括:ADSDLLADSOCXADSNET对于变量的读取分为定时轮询方式和事件触发方式。又可分为按地址读取和按变量名读取。本文介绍ADSOCX方法,分别介绍定时轮询方式和事件触发方式。读取状态-定时轮询192.168.0.105.1.1为NetId的地址(通......
  • gRPC的测试
    gRPC(Googleremoteprocedurecall)远程过程调用,使不同服务在不同机器上互相调用就像调本地一样方便但调用方和服务方对应开发不是一个人,出现问题,没法确认是哪方的问题,因此,可以使用BloomRPC工具测试rpc服务是否正常 1、测试工具:BloomRPC,下载地址 https://github.com/uw-labs/......
  • web安全测试工具
    web安全测试工具1,appscan,算是用的非常多的一款工具了,扫描后能够将绝大部分的漏洞找出来。2,NetsparkerCommunityEdition这个程序可以检测SQL注入和跨页脚本事件。牛逼的是还能提供解决方案3,Websecurify这是个简单易用的开源工具,此程序还有一些人插件支持,可以自动检测网页漏......
  • pytest-xdist分布式测试原理浅析
    pytest-xdist执行流程:解析命令行参数:pytest-xdist会解析命令行参数,获取用户指定的分发模式、进程数、主机列表等信息。加载测试用例:pytest-xdist会加载所有的pytest测试用例,包括在当前目录和子目录下的所有测试文件和测试函数。分发测试用例:根据用户指定的分发模式,py......
  • 读excel测试用例;登录;做pytest 请求
    1.从excel中读数据 返回【{字典}{字典}】;当传参数时,可以获得对应单元格内容importxlrdimportjsonfromconfigs.configsimportHOSTfromutils.md5importget_md5#在创建excel时,将登录接口的返回结果粘贴到excel时需要“只粘贴文本”#将excel实例化defget_exce......
  • VScode 中golang 基准测试 go test -bench .
    目的:基准测试的主要目的是比较不同实现方式之间的性能差异,找出性能瓶颈。1准备以_test.go结尾文件和导入testing包在命名文件时需要让文件必须以_test结尾,在文件中导入testing包。基准测试可以测试一段程序的运行性能及耗费CPU的程度,获得代码内存占用和运行效率的性能数据。G......