b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

压力测试中经常出现的内存泄漏,该如何应对?

电脑杂谈  发布时间:2021-04-27 07:01:46  来源:网络整理

对于内存泄漏,我相信每个人都熟悉它。它经常发生在压力测试中。最近,我在压力测试中召开了一次真正的会议,我来分享一下。内存泄漏是指在程序中间动态分配内存,但是这部分内存没有在程序结束时释放,导致那部分内存不可用,这可以通过重新启动计算机来解决。 ,但是可能会再次发生内存泄漏,内存泄漏和硬件。没关系,它是由软件设计缺陷引起的。按照发生的方式分类,内存泄漏可以分为4类:1.经常发生的内存泄漏。具有内存泄漏的代码将被多次执行,并且每次执行都会导致内存泄漏。 2.偶尔的内存泄漏。具有内存泄漏的代码只能在某些情况或操作下发生。频繁和零星是相对的。对于特定的环境,偶尔可能会变得很频繁。因此,测试环境和测试方法对于检测内存泄漏至关重要。 3.一次性内存泄漏。具有内存泄漏的代码将仅执行一次,或者由于算法中的缺陷,将始终存在一个和一个内存泄漏。例如,内存是在类的构造函数中分配的,但内存不会在析构函数中释放,因此内存泄漏只会发生一次。 4.隐式内存泄漏。程序在运行时会不断分配内存,但是直到结束时才释放内存。严格来说,没有内存泄漏,因为最终程序会释放所有分配的内存。

性能测试之内存泄漏_内存泄漏_性能测试之内存泄漏

但是对于服务器程序,它需要运行几天,几周甚至几个月。无法及时释放内存也可能导致所有系统内存用尽。因此,我们称这种类型的内存泄漏为隐式内存泄漏。我最近对Http应用程序进行了压力测试,发现并发达到100时,被测试对象进程占用的内存达到20%。当压力达到1000时,内存继续增加,达到60%。最终,压力消除后,内存占用率达到了20%。仍然保持60%的使用率,然后重新启动系统并发现内存已恢复正常,因此在第二轮测试中,它继续加压,并注意性能计数器中的以下指示器:Memory \可用字节是指剩余的可用物理内存,单位为兆字节(参考值:> = 10%)。指示进程当前可以使用的内存字节数。内存\页数/秒是由于硬件页面故障而从磁盘获取的页面数,或者是由于页面故障而向磁盘写入的页面数以释放工作集空间。进程\专用字节是指当前进程中正在运行的专用内存。如果此内存继续增加,则表明存在内存泄漏。通常,如果合理使用资源,则指标值会相对平稳地波动。对上述计数器的有效监视可以帮助我们判断内存泄漏。同时,要求开发人员合作进行内存搜索,以查找和分析哪些程序存在内存泄漏。

性能测试之内存泄漏_性能测试之内存泄漏_内存泄漏

最后,通过开发人员进行调试,问题很快得到解决。确实有一个程序没有释放内存。最后,压力的结果再次是记忆继续围绕一个值波动。一般参考值约为20%,但这取决于具体情况。当然,如果可以更小,最好合理地使用和分配内存。当然,有很多方法可以检测内存泄漏,并且可以与响应时间图一起监视LoadRunner压力。从用户使用程序的角度来看,内存泄漏本身不会造成任何伤害。作为一般用户,根本没有内存泄漏。真正有害的是内存泄漏的累积,最终将耗尽系统的所有内存。从这个角度来看,一次性内存泄漏不会造成危害,因为它不会累积,而隐式内存泄漏则非常有害,因为它比频繁和偶尔的内存泄漏更难检测。 。对于开发人员,应该了解熟悉Java,C ++等的知识。通常我们定义一些变量或实例化一些对象。较常用的是新方法,然后使用delete方法销毁它。如果还有更多定义的事情,那就是我想一天内申请更多的内存空间。如果没有合理的管理和消化,我将忘记最后进行一些内存回收,从而导致某些变量和实例对象未得到处理。最后,程序运行了一段时间后,我们会找到我们。内存不断上升,长时间积累会占用大量内存空间,导致其他进程无法获取内存资源,无法处理其他应用程序,最后服务被关闭,依此类推。更常见。但是,这些基本上也取决于开发人员的经验。在编程过程中合理使用和管理内存非常重要,因为此类问题通常仅反映在性能测试中,而功能测试根本不是性能的标志。 。实际上,压力测试中出现的大多数内存泄漏问题也是由程序编写过程中缺乏标准化管理引起的。开发人员需要结合使用内存监视工具来有效地监视其程序,以避免这些低级瓶颈。据说,性能测试仅是为程序提供优化建议,而不是帮助开发人员调试程序的方法。

性能测试之内存泄漏_内存泄漏_性能测试之内存泄漏


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-371232-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...