你们知道对象实例的 With 语句在访问对象实例的属性和属性时有多大影响吗?完全限定的对象引用有多"昂贵"?
我懒得通过基准测试来检查自己,我想在这里问一下;也许有人以前已经对这个进行了基准测试。
我正在考虑类似的东西
Dim ObjectInstance
Set ObjectInstance=New MyClass
With ObjectInstance
SomeField=Value
SomeProperty=Value
End With
对
Dim ObjectInstance
Set ObjectInstance=New MyClass
ObjectInstance.SomeField=Value
ObjectInstance.SomeProperty=Value
当然,我可能有几十或几百个作业。如果一个类引用了一个带有实例变量的实例,我可能会嵌套 With 语句。
其他提问方式:
使用 With 语句取消引用对象实例一次,而完全限定引用需要一次又一次地取消引用所有内容是否正确?
请注意,我们谈论的是Visual Basic Scripting Edition,子部门Visual Basic Scripting Host,这是一种非常晚绑定(绑定太晚?:-))的解释器语言。
我没有进行精确的测量。但是,我可以看到,成百上千的完全合格的作业在我的机器上几乎不需要时间,不到十分之一秒,而其他东西则需要更长的时间。
因此,只要所涉及的属性设置器相当微不足道,我绝不会仅出于性能原因创建With
语句。
换句话说:一个计数器示例是 QTP 测试对象。在这里,执行With
更频繁地有意义,因为对测试对象的每一次敬畏都可能导致 QTP 在 AUT GUI 中查找 GUI 对象。在这里,With
可能是有意义的。但是一旦你需要With
,这一点就会变得如此明显,因为事情会变得非常缓慢。
所以这一切仍然是对规则的承认:
不要过早优化。