Влияние на производительность оператора With при обращении к переменным и свойствам экземпляра объекта? - PullRequest
1 голос
/ 09 мая 2011

Ребята, знаете ли вы, какое влияние оказывает оператор 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 разыменовывает экземпляр объекта ONCEв то время как полная ссылка должна разыменовывать все снова и снова?

Заметьте, мы говорим о Visual Basic Scripting Edition, подсистеме скриптового хоста Visual Basic, которая слишком поздно связывается (слишком позднообязательный? :-)) переводчик языка.

1 Ответ

0 голосов
/ 18 мая 2011

Хорошо, я не делал точных измерений.Тем не менее, я вижу, что сотни и сотни полностью квалифицированных заданий почти не занимают время на моей машине, менее одной десятой секунды, в то время как другие вещи занимают намного больше времени.

Так что, пока задействованные установщики свойств довольно тривиальны, я бы никогда не создал оператор With исключительно из соображений производительности.

Другими словами: Aпримером счетчика являются тестовые объекты QTP.Делать With здесь имеет смысл чаще, потому что каждое почитание тестового объекта может привести к тому, что QTP ищет объект GUI в AUT GUI.Здесь может иметь смысл With.Но это становится настолько очевидным, когда вам нужно With, потому что тогда все становится очень медленно.

Так что все это все еще является подтверждением правила:

Не оптимизируйтепреждевременно.

...