Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

COM Extract Info slows down application transactio


2 replies to this topic

abhishek

abhishek
  • Members
  • 2 posts

Posted 18 April 2006 - 07:52

Hi

We are facing a problem in application transaction getting slowed down when we use 'COM Extraction At Build' option for couple of our ActiveX dlls in the installshield basic MSI package.

After installation of package we get a transaction clocking 1.4 milli second, after first time the same transaction clocks 1 milli second till application is closed. On re launching we face the same problem of 1.4 millisecond in first transaction.

Performance gets improved if after installation the two dlls in question are manually unregistered and registered using 'regsvr32' utility of windows. After this any transaction clocks 1 millisecond.

When we use regsvr32 in custom action to register only these two dlls/or use self register option then we get better performance but as per our agreement with clients we can not use custom action for any thing which can be achieved through windows installer tables. Self Register is strongly discouraged by Microsoft for registering the dlls.

When we carved out these two dlls in to a separate MSI (using COM extract info at build option for registering) we didn't get performance issues (irrespective of which order the split MSIs were installed).

The dlls are developed in VB and classes are using 'Global Multiuse' property and the treading model for the dlls is 'apartment threaded'

Has any one similar experience? Any suggestion in cracking this problem will be appreciated.

regards
Abhishek

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 18 April 2006 - 10:04

I suppose this could be related to advertised shortcuts and advertised COM data. You could try to launch the product from a non-advertised shortcut.

I'd say you could also try to rebase your dll's and EXE's by using the BindImage table. That should improve application launch time at least.
Regards
-Stein Åsmul

abhishek

abhishek
  • Members
  • 2 posts

Posted 20 April 2006 - 12:00

Hi Stein

Thanks for your response. We will try this. However our performance issue is not with launching the application. When the the transaction in question comes to take place application is already lanuched and it is there in memory.

What we need to find out how come splitting of MSI in two (the second one has only two dlls which are called by the main exe installed from first MSI) improves the performance? Or instead of COM extract if self register is used for the two dlls then we get better performance. Even using regsvr32 gives better performance (either performed manually post install or achieved through custom action while keeping these two dlls in the single MSI).

The thing is way these two dlls are registered or splitting of them from rest of the application MSI (even using COM extract) gives better performances.

One important thing is that there are some shared classes across some dlls in our application.

regards
Abhishek