- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I installed Intel 9.0 with VS.net 2003 on two Windows XP PCs and created a solution with 8 projects: 1 Quickwin, 7 static libraries (debug single threaded). When I build these libraries on one PC creating library is quite fast (40 sec) (it still is much slower than compilation with CVF (15 sec)), but on the other PC it takes much longer (2:40 min), although this is the one with better resources (Processor, RAM, Disk space). I checked the settings - they are identical on both systems. Is there a way to speed up library creation?
Thanks in advance!
I installed Intel 9.0 with VS.net 2003 on two Windows XP PCs and created a solution with 8 projects: 1 Quickwin, 7 static libraries (debug single threaded). When I build these libraries on one PC creating library is quite fast (40 sec) (it still is much slower than compilation with CVF (15 sec)), but on the other PC it takes much longer (2:40 min), although this is the one with better resources (Processor, RAM, Disk space). I checked the settings - they are identical on both systems. Is there a way to speed up library creation?
Thanks in advance!
Link Copied
16 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What part of the process is slow? The compilation or actually creating the .lib?
The usual cause of extreme slowness on one system and not another is that the slow system has less RAM and a too-small swapfile, leading to excessive paging. You can watch the Performance monitor in Task Manager to see memory and paging activity. I know you say that the slower system has more resources, but it would be good to check.
Are the project settings identical on both systems? Same level of optimization?
The usual cause of extreme slowness on one system and not another is that the slow system has less RAM and a too-small swapfile, leading to excessive paging. You can watch the Performance monitor in Task Manager to see memory and paging activity. I know you say that the slower system has more resources, but it would be good to check.
Are the project settings identical on both systems? Same level of optimization?
One other thing - are the sources and project on the local disk or are they accessed on a network share?
Message Edited by Steve_Lionel on 03-29-2006 08:23 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your reply!
Indeed it is creating the .lib that lasts so long. Compilation and linking takes about the same time on both systems, but library creation makes a big difference.
I checked the Task Manager: CPU is below 50% and there is plenty of physical memory available during build on the slow system.
On both systems sources and project files are on the local disk. Project settings are the same, too.
Optimization is disabled.
Indeed it is creating the .lib that lasts so long. Compilation and linking takes about the same time on both systems, but library creation makes a big difference.
I checked the Task Manager: CPU is below 50% and there is plenty of physical memory available during build on the slow system.
On both systems sources and project files are on the local disk. Project settings are the same, too.
Optimization is disabled.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Interesting.
You could try this experiment.
- Start..Programs..Intel Software Development Tools..Intel Fortran Compiler 9.0..Build environment for IA-32 Applications. This will open a command prompt window
- cd to the Debug or Release folder containing your .obj files
- Type the command: lib /verbose /out:new.lib *.obj
How long does this take? How many .obj files are there and what's the total size of them?
You could try this experiment.
- Start..Programs..Intel Software Development Tools..Intel Fortran Compiler 9.0..Build environment for IA-32 Applications. This will open a command prompt window
- cd to the Debug or Release folder containing your .obj files
- Type the command: lib /verbose /out:new.lib *.obj
How long does this take? How many .obj files are there and what's the total size of them?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tried it. And it took almost no time at all (1-2sec)!?? Maybe it is not the library creation at all, even though this is what is typed in the status line of VS.net?
There are 191 .obj files in the folder and their total size is 1.62MB. The .lib file is 1.29MB.
There are 191 .obj files in the folder and their total size is 1.62MB. The .lib file is 1.29MB.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok. Now try it using xilib instead of lib. What happens?
The next thing I would do is look at the timestamps of the .obj files and the .lib, sorted by creation date. Are there any large gaps? Could it be the compile of one of the sources that is taking so long?
Is this a debug or release build? Go to the Fortran..Command line property page, copy the command line options shown and paste them here.
The next thing I would do is look at the timestamps of the .obj files and the .lib, sorted by creation date. Are there any large gaps? Could it be the compile of one of the sources that is taking so long?
Is this a debug or release build? Go to the Fortran..Command line property page, copy the command line options shown and paste them here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I tried xilib: That takes 2:40 min for library creation again.
The project settings are for a debug build. The Fortran command line is:
/nologo /Zi /Od /include:"d:programmevisual studio projectsfeap75incinclude" /module:"$(INTDIR)/" /object:"$(INTDIR)/" /traceback /libs:static /dbglibs /libdir:noauto /c
I don't think it is the compilation because I only recompile one source file and reuse the other .obj files. Timestamps show that after a complete rebuild of the project there are no large gaps between .obj files but there are about three minutes between compilation of the last .obj and creation of the .lib file.
Many thanks
Karin
The project settings are for a debug build. The Fortran command line is:
/nologo /Zi /Od /include:"d:programmevisual studio projectsfeap75incinclude" /module:"$(INTDIR)/" /object:"$(INTDIR)/" /traceback /libs:static /dbglibs /libdir:noauto /c
I don't think it is the compilation because I only recompile one source file and reuse the other .obj files. Timestamps show that after a complete rebuild of the project there are no large gaps between .obj files but there are about three minutes between compilation of the last .obj and creation of the .lib file.
Many thanks
Karin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok. The build is actually using xilib, which is checking to see if you used /Qipo on any of the files. Please file a support request and attach a ZIP file of the .obj files and explain that xilib is taking much longer than lib to build the library on one system.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello again,
first of all I would like to thank you Steve for all the effort that I have caused with this and I would like to apologize because the problem is not related to the Compiler at all!
Finally I figured out what the problem was. It is caused by my firewall settings. With firewall disabled library creation is much faster.
So sorry again! And thanks a lot for your fast and competent help.
Karin
first of all I would like to thank you Steve for all the effort that I have caused with this and I would like to apologize because the problem is not related to the Compiler at all!
Finally I figured out what the problem was. It is caused by my firewall settings. With firewall disabled library creation is much faster.
So sorry again! And thanks a lot for your fast and competent help.
Karin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Karin,
Thanks for letting me know - but how did your firewall enter into this? What network access was taking place?
Thanks for letting me know - but how did your firewall enter into this? What network access was taking place?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Honestly, I have no idea. Disabling the firewall was just a blind try.
Unfortunately, I am not very familiar with my firewall, so right now it is simply disabled.
So, sorry, but I do not have an explanation for this.
Unfortunately, I am not very familiar with my firewall, so right now it is simply disabled.
So, sorry, but I do not have an explanation for this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Karin,
Please do this. Open a "Build Environment" command window and type:
SET LIB
This will display the contents of the LIB environment variable. Are there any network share paths included?
Please do this. Open a "Build Environment" command window and type:
SET LIB
This will display the contents of the LIB environment variable. Are there any network share paths included?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Possiblyyour firewallant-virus settingschecking attempts to write certain files?
just a thought
Les
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
To Steve:
Tried that. Only local directories on disk c: appear in the LIB variable.
To Les:
Sorry, I do not even understand what that means. How can I disable that if it is the cause of the problem?
Karin
Tried that. Only local directories on disk c: appear in the LIB variable.
To Les:
Sorry, I do not even understand what that means. How can I disable that if it is the cause of the problem?
Karin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Les is saying that some anti-virus products do extra checking if an application opens an existing file and modifies it. Perhaps your "firewall" is part of a larger product that also includes anti-virus? What is the name of the firewall product you disabled?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry for not knowing more about the firewall but it was set up by our Admin only 3 weeks ago.
Anti-virus (sophos) and firewall (kerio) software are two separate programs. I briefly checked the settings and the help functions of the firewall but without much success. I found this section about behaviour blocking:
'Kerio Personal Firewall controls all applications in the operating system, regardless of whether they are deployed into network communication or not. Therefore it can detect when an application is infected by a new virus or attacked by a Trojan horse immediately (it usually takes some time when an antivirus is used a new virus must be detected and then an appropriate virus database must be found).
Go to the Behavior Blocking section to set behavior blocking parameters (parameters for application control).
Check/uncheck the Enable Behavior Blocking option to enable/disable control of starting applications. If this option is disabled, running applications is ignored by Kerio Personal Firewall.'
This option is not checked in my settings and I still have no idea what causes the problem. So disabling the firewall is my only workaround.
Thanks
Karin
Anti-virus (sophos) and firewall (kerio) software are two separate programs. I briefly checked the settings and the help functions of the firewall but without much success. I found this section about behaviour blocking:
'Kerio Personal Firewall controls all applications in the operating system, regardless of whether they are deployed into network communication or not. Therefore it can detect when an application is infected by a new virus or attacked by a Trojan horse immediately (it usually takes some time when an antivirus is used a new virus must be detected and then an appropriate virus database must be found).
Go to the Behavior Blocking section to set behavior blocking parameters (parameters for application control).
Check/uncheck the Enable Behavior Blocking option to enable/disable control of starting applications. If this option is disabled, running applications is ignored by Kerio Personal Firewall.'
This option is not checked in my settings and I still have no idea what causes the problem. So disabling the firewall is my only workaround.
Thanks
Karin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Interesting tact for a firewall application to take. I suggest you bring this up with your system administrator.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page