1

オブジェクト インスタンスの属性とプロパティにアクセスするときに、オブジェクト インスタンスの 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 Sc​​ripting Edition、サブセクターの Visual Basic Sc​​ripting Host について話していることに注意してください。これは、非常に遅いバインディング (バインディングが遅すぎる? :-) ) インタープリター言語です。

4

1 に答える 1

0

わかりました、正確な測定はしませんでした。しかし、私のマシンでは、何百もの完全修飾された割り当てにほとんど時間がかからず、10 分の 1 秒未満しかかからないことがわかりますが、他のものにははるかに長い時間がかかります。

したがって、関連するプロパティ セッターが些細なものである限り、Withパフォーマンス上の理由だけでステートメントを作成することは決してありません。

つまり、反例は QTP テスト オブジェクトです。ここでaWithを頻繁に実行することは理にかなっています。なぜなら、テスト オブジェクトを敬うたびに QTP が AUT GUI で GUI オブジェクトを検索する可能性があるからです。ここで、With'ing は理にかなっているかもしれません。Withしかし、必要になると、物事が本当に遅くなるため、これは非常に明白になります。

したがって、これはまだルールの確認です。

時期尚早に最適化しないでください。

于 2011-05-18T10:11:36.523 に答える