在我现在使用的场景是——项目组使用ruby做自动化用例,而写的用例结构如下
class TestClass < Watir::TestCase
def test_init
@@aa=XXX.new()
@@bb=XXXX.new()
...
end
def test_
#使用类对象
end
end
测试用例很多,并且都使用的是类变量,一个一个类开始执行
在这种情况下会导致内存泄露吗?我想感觉这个和类变量的生命周期有关系,另外也想知道这里面的垃圾回收机制是怎么管理这些类变量的
非常感谢!
比如
a = TestClass.new
b = TestClass.new
2个@ 是属于 TestClass 的变量,a和b都能访问 TestClass的@@变量而已.
1个@ 是属于 a和b 自己的.
垃圾回收是一旦执行 @@aa=XXX.new() 这句,则原 @@aa 的旧值XXX.new()如果不再被使用,就回收了.
我想就算你每秒调用1万次 TestClass.new , 也不会泄漏吧.