Compile time with added FlexCel

Hello everybody,


after adding FlexCel to our project, the compile time increased dramatically: Before a complete build of out project took around 45 minutes, but with FlexCel added it is around 4 hours! The only difference are the following units, that were added to a uses list of one of our components (we have developed a dbgrid with a context menu that allows to export the data to excel)

VCL.FlexCel.Core, FlexCel.XlsAdapter

Did someone experience anything like this before? 

Thanks for your support!

Christian

Let me add some information:


We are using Delphi XE. When we have installed the IDE Fix Pack, there is no difference, only without the IDE Fix Pack there is this big difference

Hi,

I am not sure on why this might be happening, but can you verity you don't have any FlexCel unit in your search path?

In the search path you should only have FlexCel dcus, not pas. The installer sets it up this way, but you might have added the pas to the search path manually.

Even so, a full compile of FlexCel is some minutes, not hours, so I guess something else is going on. 
Even 45 minutes for your product, no matter how big it is and how much 3rd party components it uses seems too long: Delphi compiling should be much faster. How many lines of code do you see after a full rebuild?

Is there any antivirus in your machine that you might try disabling? Or maybe some entry in the search path that is pointing to some network location which isn't available?

There were several FlexCel source folders in the search path, but I think this should not be any problem at all. In the library path there ist only the folder containing the DCUs.

Nevertheless, I just removed all FlexCel stuff from the search path, but this did not make any difference.


Alltogether it is around 1.100.000 lines of code.


I tried with disabled AntiVirus as well, this also makes no difference.

The fact, that a full build of the project takes 45 minutes without flexcel is one thing, but I would like to understand why adding FlexCel to the implementation uses list of our DBGrid component makes such a big difference. I just observed the build process some minutes, and I seems like it takes much longer to compile any form that uses that DBGrid.

I also tried to move the export functionality into a separate unit, but this also had no effect on the build time.

This is really strange. Our test app here, which recompiles the full FlexCel, is 710.380 lines of code and it compiles in 1 minute 20 seconds. (and FlexCel code has a lot of generics, which make the compiling slower: if you have more normal delphi code it should be faster). 45 minutes for 1 million lines of code still seems too much. And of course 4 hours with FlexCel is just too much, specially since you aren't compiing FlexCel, you are just using the precompiled dcus. 


My machine isn't anything too fancy either, it is a 2010 i7 with 8gb of mem and a magnetic hard disk (no ssd). I can even compile the full FlexCel in a 2010 macbook pro (Also magnetic disk), running inside a parallels virtual machine in under 2 minutes.

Can you try to make a build in a different machine? I think it could make a big difference in build times even without FlexCel.  As said, I am clueless about what can be going on, but those times of building seem too high: with FlexCel incredibly high, but without FlexCel too high anyway.

Some more things to try, even if I don't know if they will help:


1)Can you open the "Rad studio command prompt" (from start menu->embarcadero, or search for it). Then go to the folder where your dproj is, and run the command:

msbuild myproject.dproj /v:diag /t:build > test.log

Then open test.log and search for the total time
If I run it here in my test app I get:
  710380 lines, 64.98 seconds, 6772540 bytes code, 138792 bytes data. (TaskId:65)
I wonder what your numbers are, or if you can find something strange in the log.

Note that this log will contain your unit names, so it is probably best not to post it in public, but if you can zip it and send it to adrian@tmssoftware.com I'll take a look to see if I can find something strange.

2)While you are building your app, if you are running windows 7 or newer, can you open "resource monitor"  (start menu, search for resource monitor) and look if there isn't any other unrelated process taking a lot of processing time, memory, or disk activity?  What about network performance?