[vwnc] [7.6] [DLLCC] loading COM code is extremely slow

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] [7.6] [DLLCC] loading COM code is extremely slow

Christian Haider
Brief description: see subject
Version: 7.6
Severity: Medium
Description:

The store loading time for my COM packages increased dramatically:
                                7.5 7.6 factor
MicrosoftOffice9 0:22 13:18 798 / 22 = 36.2727
MicrosoftPowerPoint9 1:16 41:30 2490 / 76 = 32.7632
MSGraph9 0:38 43:47 2627 / 38 = 69.1316

The problem is the new DLLCC.
With every type definition (C typedef), the subhierarchy (of a subclass of ExternalInterface) is recompiled (ExternalInterface class>>recompileAfterTypeDefinitionCompiled).
This may be good behavior for interactive coding, but not for bulk source loading! When loading, it should recompile after a class or package was loaded.

Work around:
I added the following method after loading COM before loading your COM classes:

Win32ExternalInterface>>recompileAfterTypeDefinitionCompiled
        "patch to revert VW 7.6 DLLCC changes. Increased the load time dramatically"
        ^self

In the postLoad block of the top level bundles containing TypeDefs, I put 'Win32ExternalInterface recompileAfterTypeDefinitionCompiled'

With the patch, it loads even faster than under 7.5:
MicrosoftOffice9 0:17
MicrosoftPowerPoint9 0:57
MSGraph9 0:26


Since this was introduced in 7.6, I wonder what problem this is trying to fix - it seemed to work fine for me before. What kind of phenomena I have to look out for when not recompiling all the time?

Cheers,
        Christian

No virus found in this outgoing message.
Checked by AVG - http://www.avg.com 
Version: 8.0.138 / Virus Database: 270.6.0/1602 - Release Date: 09.08.2008 13:22

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [7.6] [DLLCC] loading COM code is extremely slow

Andres Valloud-3
Christian,

Several ARs exist for this.  IIRC, it is AR 53312 that addresses the
problem.  Unfortunately this and other ARs related to DLLCC are still in
review.  Other AR numbers related to this topic are 53302, 53332, 53334,
53465, 53553 and 53555.

Andres.


Christian Haider wrote:

> Brief description: see subject
> Version: 7.6
> Severity: Medium
> Description:
>
> The store loading time for my COM packages increased dramatically:
> 7.5 7.6 factor
> MicrosoftOffice9 0:22 13:18 798 / 22 = 36.2727
> MicrosoftPowerPoint9 1:16 41:30 2490 / 76 = 32.7632
> MSGraph9 0:38 43:47 2627 / 38 = 69.1316
>
> The problem is the new DLLCC.
> With every type definition (C typedef), the subhierarchy (of a subclass of ExternalInterface) is recompiled (ExternalInterface class>>recompileAfterTypeDefinitionCompiled).
> This may be good behavior for interactive coding, but not for bulk source loading! When loading, it should recompile after a class or package was loaded.
>
> Work around:
> I added the following method after loading COM before loading your COM classes:
>
> Win32ExternalInterface>>recompileAfterTypeDefinitionCompiled
> "patch to revert VW 7.6 DLLCC changes. Increased the load time dramatically"
> ^self
>
> In the postLoad block of the top level bundles containing TypeDefs, I put 'Win32ExternalInterface recompileAfterTypeDefinitionCompiled'
>
> With the patch, it loads even faster than under 7.5:
> MicrosoftOffice9 0:17
> MicrosoftPowerPoint9 0:57
> MSGraph9 0:26
>
>
> Since this was introduced in 7.6, I wonder what problem this is trying to fix - it seemed to work fine for me before. What kind of phenomena I have to look out for when not recompiling all the time?
>
> Cheers,
> Christian
>
> No virus found in this outgoing message.
> Checked by AVG - http://www.avg.com 
> Version: 8.0.138 / Virus Database: 270.6.0/1602 - Release Date: 09.08.2008 13:22
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
>  

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [7.6] [DLLCC] loading COM code is extremely slow

Andres Valloud-3
Ahh, I missed the question about what problem is this trying to solve.  
The issue is that if type declarations are compiled in some orders, then
their dependencies are not fixed after loading and so the instantiated
types are not what the code asked for.

Andres.

Andres Valloud wrote:

> Christian,
>
> Several ARs exist for this.  IIRC, it is AR 53312 that addresses the
> problem.  Unfortunately this and other ARs related to DLLCC are still in
> review.  Other AR numbers related to this topic are 53302, 53332, 53334,
> 53465, 53553 and 53555.
>
> Andres.
>
>
> Christian Haider wrote:
>  
>> Brief description: see subject
>> Version: 7.6
>> Severity: Medium
>> Description:
>>
>> The store loading time for my COM packages increased dramatically:
>> 7.5 7.6 factor
>> MicrosoftOffice9 0:22 13:18 798 / 22 = 36.2727
>> MicrosoftPowerPoint9 1:16 41:30 2490 / 76 = 32.7632
>> MSGraph9 0:38 43:47 2627 / 38 = 69.1316
>>
>> The problem is the new DLLCC.
>> With every type definition (C typedef), the subhierarchy (of a subclass of ExternalInterface) is recompiled (ExternalInterface class>>recompileAfterTypeDefinitionCompiled).
>> This may be good behavior for interactive coding, but not for bulk source loading! When loading, it should recompile after a class or package was loaded.
>>
>> Work around:
>> I added the following method after loading COM before loading your COM classes:
>>
>> Win32ExternalInterface>>recompileAfterTypeDefinitionCompiled
>> "patch to revert VW 7.6 DLLCC changes. Increased the load time dramatically"
>> ^self
>>
>> In the postLoad block of the top level bundles containing TypeDefs, I put 'Win32ExternalInterface recompileAfterTypeDefinitionCompiled'
>>
>> With the patch, it loads even faster than under 7.5:
>> MicrosoftOffice9 0:17
>> MicrosoftPowerPoint9 0:57
>> MSGraph9 0:26
>>
>>
>> Since this was introduced in 7.6, I wonder what problem this is trying to fix - it seemed to work fine for me before. What kind of phenomena I have to look out for when not recompiling all the time?
>>
>> Cheers,
>> Christian
>>
>> No virus found in this outgoing message.
>> Checked by AVG - http://www.avg.com 
>> Version: 8.0.138 / Virus Database: 270.6.0/1602 - Release Date: 09.08.2008 13:22
>>
>> _______________________________________________
>> vwnc mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>>
>>  
>>    
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
>  

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc