David,
the init method is empty. So no code is executed during creation.
The only difference it that large COM contains additional routines which are not called. I build it starting from other main file. The OLEPUBLIC class included in this application is exactly the same.
Do you really think that COM object instation speed should depend on its size exponentially ?
5 MB = 3 seconds
7 MB = 12 seconds
so
17 MB = forever !?
Really ?
Is so, do you also think that VFP application exe statup time should depend on the size of application exe file ?
>Andrus,
>
>12 seconds to load a gigantic DLL like that doesn't seem to be that bad.
>
>When you trimmed it down to 5mb did you rip out a lot of stuff that was doing a lot of things like opening tables etc?
>
>Can you rearchitect the system to use several smaller COM objects instead of one monolithic COM? I don't use FOXISAPI, but if this object has such a high startup cost, can you instantiate it just once and then keep using the same instance?
>
>>I created VFP 7 MTDLL myapp.dll which contains one COM object myobj.
>>I try to use it from VFP . I have 1.7 GHz Pentium 4 computer with Windows XP SP1
>>myapp.dll file size is 7 MB.
>>
>>It takes 12 seconds for FOXISAPI to load this object.
>>If I call MTDLL with PoolMode=0, each FOXISAPI call takes 12 seconds.
>>
>>The command from VFP
>>
>>myobj = CREATEOBJECT('myapp.myobj')
>>
>>also takes 12 seconds.
>>
>>If I create same COM object with fewer procedures so that myapp.dll file
>>size is 5 MB, CREATEOBJECT() command takes 3 seconds.
>>
>>I also tried to create a EXE com server, but this has the same problem.
>>
>>Any idea how to decrease 12 seconds creation time of 7 MB VFP COM object ?
Andrus