代码来源:systemverilog for verification(3rd version)
其中提到了当我们执行case的时候有两种方法:
1.例化所有的类,使用get_test方法从命令行中选择一个test执行。 缺点是每个test都会例化,进而例化了test->evn等hierarchy的类,占用了大量memory,当case书目足够大时,这个内存消耗是惊人的。
2.创建所有的test对应的wrapper对象和一个factory的对象,使用factory的get_test方法来实例化一个test。
比较上述两者区别,可以看到前者例化了N各test,或者例化了N个wrapper加1个test,从数量上看前者占优,但是前者的每个test例化的是一串类对象,而后者wrapper每个对象仅仅是一个,从这个方面看,随着test的增多,或者优势线性增加,即占用相对少的内存空间,加速cpu的执行效率。