测试自动化脚本之内存的利用和回收

        自动化测试脚本本身是一种开发行为,内存的是否有效利用和回收是程序高质量的重要衡量指标。

        如果使用C++来开发自动化测试程序,必须要遵循编译语言的内存利用规则。


        内存使用常见错误如下:

1.内存分配不成功,却使用它

对策:使用前检查内存是否为NULL。

2.内存分配成功后,没有初始化就使用它

对策:内存分配后初始化。

3.内存分配成功且已经初始化,但是越界

对策:做越界检查。

4.忘记释放内存,造成内存泄露

对策:内存动态分配和释放必须成双配对。

5.释放了内存却继续使用它

对策:对象关系过于复杂,理不清楚究竟释放了没有,Return指向栈内存的指针或引用 Free或delete内存后,没有把指针置为NULL。导致野指针。


       但是,对于Java语言来说,它的一个重要优点就是通过垃圾收集器自动管理内存的回收,程序员不需要通过调用函数来释放内存,因此,很多程序员认为java不存在内存泄露问题,或者认为即使有内存泄露也不是程序的责任,而是GC或JVM的问题。

      其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。在java中,内存泄露就是存在一些被分配的对象,这些对象有下面两个特点:

      首先,这些对象是可达的,即在有向图中,存在通路可以与其相连。

      其次,这些对象是无用的,即程序以后不会再使用这些对象。

     如果对象满足这两个条件就可以判定为java中的内存泄露,这些对象不会被GC回收,但是却占用内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值