Technical Support Forum Index
Technical Support Forum
Access ChemAxon scientists and developers here. For registration and login issues contact website support.
Installer size reduction?
To watch this topic for replies  Register (enables digests) or give email address:
Reply to topic
Display posts from previous:   
    View previous topic :: View next topic    
Author Message
marsu

Joined: 04 Mar 2011
Posts: 93

View user's profile

Back to top
Link to postPosted: Wed Feb 01, 2012 7:02 amPost subject: Installer size reduction? Reply with quote

I have recently released the new version of my ELN, which now contains Marvin Sketch as a drawing editor. Before this integration, the installer size was manageable 14 MB. After the inclusion of the JChem. NET installer its size now has exploded to 67 MB (>4 times!), most of this due to unused JChem.NET functionality (the referenced JChem .NET dll's would have a size of 15 MB only after compression).

I tried to place the referenced JChem .NET dll's into the application folder, to avoid the installation of the full package, but this doesn't work, probably due to missing registry entries. - Therefore: Is there any way either to create a custom, more streamlined JChem.NET installer (possibly only for x64 or x86, if this should halve the size), or alternatively to incorporate only required JChem.NET dll's only into a .NET project? Any help would be much appreciated!

Update: Included screenshot of the referenced dll's

Regards, Stefan




 Filename: ChemAxonRefs.png    Filesize: 12.43 KB    Viewed: 10216 Time(s)
 Description:  
ChemAxonRefs.png
marsu

Joined: 04 Mar 2011
Posts: 93

View user's profile

Back to top
Link to postPosted: Wed Feb 01, 2012 9:05 amPost subject: Reply with quote

After writing above post, I was looking at this further - and I think I found the solution now! I just realized that I need to include the whole IKVM overhead in the application folder. After removing the large help file and all IKVM components not required for my functionality, I now come up with ca. 20 MB JChem payload as compared to the 49 MB required before. I still need to implement an installer and test the whole installation on x64 and x86 VM's, but things look promising now.

Which, as a side note, demonstrates again how desirable a purely native NET solution for JChem would be, without any IKVM overhead ...  - dreaming allowed :-)

Best regards,
Stefan

marsu

Joined: 04 Mar 2011
Posts: 93

View user's profile

Back to top
Link to postPosted: Wed Feb 01, 2012 3:00 pmPost subject: Reply with quote

My apologies for this forum monologue, but maybe my findings are interesting for others also.

I was able now reduce my installer from initially 78.5 MB containing the JChem_NET 5.7.0 installer, down to 38.1 MB using the required DLL's only - that's a size reduction by ca. 45%. I've made some rather extensive testing on XP and Windows 7 32 & 64 bit, and all required functionality of Marvin Sketch seems the be there.

For all those interested, there's a screen shot below showing the critically required infrastructure DLL's for running Marvin Sketch 5.7.0, to be placed into the application folder. Please note that the large Marvin help DLL was also removed in this setup and therefore not available from Marvin Sketch. The DLL's were referenced from the GAC by the installer project.

This should finally conclude this little writing to myself :-). Sometimes the spark ignites just minutes after you have put the problem into words ...

Cheers, Stefan




 Filename: MarvinSketch_5.0.7_RequiredDLLs.png    Filesize: 14.43 KB    Viewed: 10207 Time(s)
 Description:  
MarvinSketch_5.0.7_RequiredDLLs.png
akovacs
ChemAxon personnel
Joined: 28 Mar 2010
Posts: 191

View user's profile

Back to top
Link to postPosted: Wed Feb 01, 2012 4:09 pmPost subject: Reply with quote

Hi Marsu,

Thank you for the investigation!

Just some comments topic:

If you confident on exactly what functionality will be used, then you can freely shrink the installation package.

But, In the future, if you decide to make some more Marvin functionality available, or there will be future versions of JChem.NET that just requires the removed assemblies you have to repeatedly test the functionality remains intact. I  I think, it might create unnecessary risks.

We are working on a Jchem.NET package that contains the jars as separate assemblies.

It will also contain all the available third party jars as assemblies too. (What the current version unfortunately not.)

The good news is the assemblies can be choosen in more details (of course with more risk).

The bad news is, the full package will be noticeably bigger.

Sadly, I don't have any suggestion how to make sure, that all the assemblies are available for the functionality the user will ever use in the shrinked package.

 

Regards,

András

 

marsu

Joined: 04 Mar 2011
Posts: 93

View user's profile

Back to top
Link to postPosted: Wed Feb 01, 2012 4:27 pmPost subject: Reply with quote

Thanks for your comments, Andras, I am aware of the risks of my approach and the required testing. I am also looking forward to your jar-approach; I guess when released, there will be some documentation on how to utilize it.

Stefan 

Reply to topic
Page 1 of 1


To watch this topic for replies   Register (enables digests) or give email address  
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum