Mike Yearwood
Toronto, Ontario, Canada
Versions des environnements
Hi Dragan
>>>>NewObject() is slower then CreateObject()
>>>
>>>Because it needs to find the file (even internally)?
>>
>>No, because NEWOBJECT() works by first saving a list of all of the open class libraries, then closing them, then creating the object, then reopening all of the previously open class libraries. Weird I know, but that's how it works.
>
>Ah but then we'd have to benchmark pure newobject() and no classlibs set vs Set ClassLib/Set Procedure and CreateObject(). If there were none set (and none to reopen) then its speed may be the same.
I often find myself wondering why we focus so hard on this level of detail. Best practice says we're supposed to make a component (UDF or class) to encapsulate design decisions of this kind.
A factory object IMO (being the ultimate in flexibility) should be used to instantiate objects. It would be the place to decide if we should use newobject or createobject - as hardcoding classes limits flexibility.
Further it would be a fantastic place to add code that checks to see if the class / procedure is already opened before opening it again.
IF NOT "VCXNAME" $ SET("CLASSLIB")
SET CLASSLIB TO VCXNAME ADDITIVE
ENDIF
Précédent
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement