473,583 Members | 3,134 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

REPOST: extremely long link times

Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot of
wasted time. I've got a reasonably large mixed C++ project, and after a
number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe (or
cl.exe) is barely using any processor time, but an awful lot of RAM (around
150-200MB). I'm going to keep an eye on page faults since I can't think of
anything else that could be causing this - the machine doesn't seem to be
thrashing and is fairly responsive during building. Can anyone recommend
anything?

Thanks,

Steve
Nov 17 '05 #1
14 2818
Hi,

1. Nope, and it's linking that's the problem - compiling's generally very
fast. In any case, it's not getting anywhere near maxing the processor so
it's not the workload slowing it down.

2. It is only recompiling the minimum but incremental linking apparently
doesn't work under /clr.

3. I am now wondering whether it'd be better to split everything up into
separate DLLs, but I don't want to for a couple of reasons. And besides,
what puzzles me is why the linker seems to be sitting on its hands for a
minute or two, without seeming to do any work.

Cheers,

Steve

"Fireangel" <Fi*******@disc ussions.microso ft.com> wrote in message
news:4F******** *************** ***********@mic rosoft.com...

I'm a fairly newbie to C++ and the like, so feel free to ignore...

Some questions / comments:

1. Are you using alot of #Define (or anything like that. Can't remember what they are actually called)?? I've had the displeasure of hacking
somebodies old code that had ALOT of this stuff, and to compile it took
close to 4 min. I went ahead and took out as much as I could (W/o killing
the app), and it was a noticable change.
2. You may want to consider using the option "Enable Minimal Rebuild" under the projects configureation properties -> C/C++ -> Code Generation.
If set to YES, the compiler will only create new OBJ for those files that
have changed. It will keep the old OBJs and then link them. If you only
change 1 file between, only 1 OBJ will be recreated (instead of them all).
I think (not sure), but any files that include the file you change (Using
#include) may have to be recompiled...
3. If you're just testing / debugging, why don't you make temp dll's for any part of the code that is "Done" or not being checked. For instance, I
have a Map.dll that containes all my stuff related to geographical maps. I
then include it as a referance, use #using, and that stuff never gets
compiled. I then create a "include all" project that has all the code files
in it. This does leave me with a lot of Test projects all over the place,
but to test it does make it fairly fast.

Can't think of anything else. Let me know if this helps...
GE

"Steve McLellan" wrote:
Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot of wasted time. I've got a reasonably large mixed C++ project, and after a
number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe (or cl.exe) is barely using any processor time, but an awful lot of RAM (around 150-200MB). I'm going to keep an eye on page faults since I can't think of anything else that could be causing this - the machine doesn't seem to be thrashing and is fairly responsive during building. Can anyone recommend
anything?

Thanks,

Steve

Nov 17 '05 #2
Hi Steve,

I've had building speed issues in the past. Usually turns out not to be
the tools, but the environment.

are you building on or to a mapped or subst'd drive?
are you running anti-virus software?

Just a stab in the dark.... good luck.

Steve McLellan wrote:
Hi,

1. Nope, and it's linking that's the problem - compiling's generally very
fast. In any case, it's not getting anywhere near maxing the processor so
it's not the workload slowing it down.

2. It is only recompiling the minimum but incremental linking apparently
doesn't work under /clr.

3. I am now wondering whether it'd be better to split everything up into
separate DLLs, but I don't want to for a couple of reasons. And besides,
what puzzles me is why the linker seems to be sitting on its hands for a
minute or two, without seeming to do any work.

Cheers,

Steve

"Fireangel" <Fi*******@disc ussions.microso ft.com> wrote in message
news:4F******** *************** ***********@mic rosoft.com...
I'm a fairly newbie to C++ and the like, so feel free to ignore...

Some questions / comments:

1. Are you using alot of #Define (or anything like that. Can't remember


what they are actually called)?? I've had the displeasure of hacking
somebodies old code that had ALOT of this stuff, and to compile it took
close to 4 min. I went ahead and took out as much as I could (W/o killing
the app), and it was a noticable change.
2. You may want to consider using the option "Enable Minimal Rebuild"


under the projects configureation properties -> C/C++ -> Code Generation.
If set to YES, the compiler will only create new OBJ for those files that
have changed. It will keep the old OBJs and then link them. If you only
change 1 file between, only 1 OBJ will be recreated (instead of them all).
I think (not sure), but any files that include the file you change (Using
#include) may have to be recompiled...
3. If you're just testing / debugging, why don't you make temp dll's for


any part of the code that is "Done" or not being checked. For instance, I
have a Map.dll that containes all my stuff related to geographical maps. I
then include it as a referance, use #using, and that stuff never gets
compiled. I then create a "include all" project that has all the code files
in it. This does leave me with a lot of Test projects all over the place,
but to test it does make it fairly fast.

Can't think of anything else. Let me know if this helps...
GE

"Steve McLellan" wrote:

Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot
of
wasted time. I've got a reasonably large mixed C++ project, and after a
number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe
(or
cl.exe) is barely using any processor time, but an awful lot of RAM
(around
150-200MB). I'm going to keep an eye on page faults since I can't think
of
anything else that could be causing this - the machine doesn't seem to
be
thrashing and is fairly responsive during building. Can anyone recommend
anything?

Thanks,

Steve


Nov 17 '05 #3
TOM
Steve:

Some of the MS applications try to access the Internet whether or not
there is
anything that needs to be found. One of the office applications stalls until
the TCP
time-out occurs (1-2 minutes before starting).

Additionally, I found I have to clear the IE6 browser history
periodically, and if I
have any URL shortcuts on the desktop that refer to an FTP site, I have to
remove those
as well, or after awhile all file menus stall for about 2 minutes.

-- Tom


"Steve McLellan" <sjm.NOSPAM AT fixerlabs DOT com> wrote in message
news:eZ******** ******@TK2MSFTN GP12.phx.gbl...
Hi,

1. Nope, and it's linking that's the problem - compiling's generally very
fast. In any case, it's not getting anywhere near maxing the processor so
it's not the workload slowing it down.

2. It is only recompiling the minimum but incremental linking apparently
doesn't work under /clr.

3. I am now wondering whether it'd be better to split everything up into
separate DLLs, but I don't want to for a couple of reasons. And besides,
what puzzles me is why the linker seems to be sitting on its hands for a
minute or two, without seeming to do any work.

Cheers,

Steve

"Fireangel" <Fi*******@disc ussions.microso ft.com> wrote in message
news:4F******** *************** ***********@mic rosoft.com...

I'm a fairly newbie to C++ and the like, so feel free to ignore...

Some questions / comments:

1. Are you using alot of #Define (or anything like that. Can't remember
what they are actually called)?? I've had the displeasure of hacking
somebodies old code that had ALOT of this stuff, and to compile it took
close to 4 min. I went ahead and took out as much as I could (W/o killing
the app), and it was a noticable change.

2. You may want to consider using the option "Enable Minimal Rebuild" under the projects configureation properties -> C/C++ -> Code Generation.
If set to YES, the compiler will only create new OBJ for those files that
have changed. It will keep the old OBJs and then link them. If you only
change 1 file between, only 1 OBJ will be recreated (instead of them all).
I think (not sure), but any files that include the file you change (Using
#include) may have to be recompiled...

3. If you're just testing / debugging, why don't you make temp dll's

for any part of the code that is "Done" or not being checked. For instance, I
have a Map.dll that containes all my stuff related to geographical maps. I then include it as a referance, use #using, and that stuff never gets
compiled. I then create a "include all" project that has all the code files in it. This does leave me with a lot of Test projects all over the place,
but to test it does make it fairly fast.


Can't think of anything else. Let me know if this helps...
GE

"Steve McLellan" wrote:
Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot
of wasted time. I've got a reasonably large mixed C++ project, and after
a number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe
(or cl.exe) is barely using any processor time, but an awful lot of RAM (around 150-200MB). I'm going to keep an eye on page faults since I can't
think
of anything else that could be causing this - the machine doesn't seem to be thrashing and is fairly responsive during building. Can anyone

recommend anything?

Thanks,

Steve


Nov 17 '05 #4
Hi,

OK, cheers, will check that out. I do have AV software running, so that
might be it.

Thanks!

Steve

"doug mansell" <do**********@h otmail.com> wrote in message
news:ez******** ******@TK2MSFTN GP12.phx.gbl...
Hi Steve,

I've had building speed issues in the past. Usually turns out not to be
the tools, but the environment.

are you building on or to a mapped or subst'd drive?
are you running anti-virus software?

Just a stab in the dark.... good luck.

Steve McLellan wrote:
Hi,

1. Nope, and it's linking that's the problem - compiling's generally very fast. In any case, it's not getting anywhere near maxing the processor so it's not the workload slowing it down.

2. It is only recompiling the minimum but incremental linking apparently
doesn't work under /clr.

3. I am now wondering whether it'd be better to split everything up into
separate DLLs, but I don't want to for a couple of reasons. And besides,
what puzzles me is why the linker seems to be sitting on its hands for a
minute or two, without seeming to do any work.

Cheers,

Steve

"Fireangel" <Fi*******@disc ussions.microso ft.com> wrote in message
news:4F******** *************** ***********@mic rosoft.com...
I'm a fairly newbie to C++ and the like, so feel free to ignore...

Some questions / comments:

1. Are you using alot of #Define (or anything like that. Can't remember

what they are actually called)?? I've had the displeasure of hacking
somebodies old code that had ALOT of this stuff, and to compile it took
close to 4 min. I went ahead and took out as much as I could (W/o killing the app), and it was a noticable change.
2. You may want to consider using the option "Enable Minimal Rebuild"


under the projects configureation properties -> C/C++ -> Code Generation. If set to YES, the compiler will only create new OBJ for those files that have changed. It will keep the old OBJs and then link them. If you only change 1 file between, only 1 OBJ will be recreated (instead of them all). I think (not sure), but any files that include the file you change (Using #include) may have to be recompiled...
3. If you're just testing / debugging, why don't you make temp dll's
for
any part of the code that is "Done" or not being checked. For instance, I have a Map.dll that containes all my stuff related to geographical maps. I then include it as a referance, use #using, and that stuff never gets
compiled. I then create a "include all" project that has all the code files in it. This does leave me with a lot of Test projects all over the place, but to test it does make it fairly fast.

Can't think of anything else. Let me know if this helps...
GE

"Steve McLellan" wrote:
Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot


of
wasted time. I've got a reasonably large mixed C++ project, and after a
number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe


(or
cl.exe) is barely using any processor time, but an awful lot of RAM


(around
150-200MB). I'm going to keep an eye on page faults since I can't think


of
anything else that could be causing this - the machine doesn't seem to


be
thrashing and is fairly responsive during building. Can anyone

recommendanything?

Thanks,

Steve


Nov 17 '05 #5
On Mon, 26 Jul 2004 21:12:05 +0100, "Steve McLellan" <sjm.NOSPAM AT
fixerlabs DOT com> wrote:
Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot of
wasted time. I've got a reasonably large mixed C++ project, and after a
number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe (or
cl.exe) is barely using any processor time, but an awful lot of RAM (around
150-200MB). I'm going to keep an eye on page faults since I can't think of
anything else that could be causing this - the machine doesn't seem to be
thrashing and is fairly responsive during building. Can anyone recommend
anything?


Have you got whole program optimization switched on? If so, switching
it off may help.

Tom
Nov 17 '05 #6
Hi,

Yeah, I can imagine that would slow things down. I'm building a debug build
with no optimization, no nothin'. It may just be that it's a reasonably
large project. Due to some other issues with managed / unmanaged inlining we
may have to segment the project up anyway.

Thanks,

Steve

"tom_usenet " <to********@hot mail.com> wrote in message
news:ng******** *************** *********@4ax.c om...
On Mon, 26 Jul 2004 21:12:05 +0100, "Steve McLellan" <sjm.NOSPAM AT
fixerlabs DOT com> wrote:
Hi,

Sorry to repost, but this is becoming aggravating, and causing me a lot ofwasted time. I've got a reasonably large mixed C++ project, and after a
number of builds (but not a constant number) linking (and sometimes
compiling) becomes immensely slow, and task manager shows that link.exe (orcl.exe) is barely using any processor time, but an awful lot of RAM (around150-200MB). I'm going to keep an eye on page faults since I can't think ofanything else that could be causing this - the machine doesn't seem to be
thrashing and is fairly responsive during building. Can anyone recommend
anything?


Have you got whole program optimization switched on? If so, switching
it off may help.

Tom

Nov 17 '05 #7
Here's a copy of something I'm writing that may be of assistance in
general. If possible I'd like to get a repro of your problem. I'm trying
to understand what the various problems are with linking, and the more
customer issues I can help resolve, the better.

Thanks,

Kang Su Gatlin
Visual C++ Program Manager
----

Informative Short Note on the Microsoft VC2003 Linker

Introduction
The linker is the unsung hero of the build process. Everyone talks about
the compiler, devenv, even nmake, but the linker is where it all comes
together. The linker only seems to get brought up when it's not working
the way users expect. In 2003 Microsoft introduced Visual C++ 2003, and
with that a new linker. From perusing the various message boards I've seen
some complaints regarding the speed of linking with this new linker. In
this whitepaper I'll try to help people make their linking faster, and
understanding why it is slower.

Microsoft Visual C++ 6 was released in the late 90s and one of the most
popular and widely liked C++ development environments ever crafted. Visual
C++ 2003 improved on the code generation and other cool features such as
security, but there were some features that we heard our fair share of
complaints about. As you could guess, in this article I'll talk about the
linker, and how you might be able to figure out why your link times seem
slower, for some scenarios, in VC2003.

So you may find yourself asking, "This sounds cool and all, but what
actually is a linker?" Well here's my one paragraph description of what a
linker is : The linker (link.exe in Visual C++) is a program that takes
as input a collection of object files (.obj) and libraries (.lib), puts
them together, and creates an executable (or a .dll). The main things that
the linker does while linking is that it puts data into the correct
sections of the final image, fixes up relocation information, and folds
types and functions that are redundant. It has a hefty job, and as
languages like C++ become more popular , and programs get bigger, the job
of the linker is taking longer to do.

Preliminaries
Before diving into the below discussions, let me first open by talking
about a couple of hidden switches that may help people diagnose linker
problems:

/TIME - This switch will give timing information for various parts of the
link phase. It is often useful to get an idea of where the time is
actually going on and where. Admittedly, much more useful to Microsoft in
helping diagnose your problems.

/TEST - Test gives additional information regarding what might be going
wrong during linking. When things are working correctly, you tend to get
relatively little information out of it.

Additionally if you ever need to contact Microsoft about a problem with the
linker, what we often like to have available is a reproduction that we
could use internally. We call this a "link repro".

To construct a link repro, do the following:
1. mkdir <some_dir>.
2. add /linkrepro:<some _dir> to the linker command line.
3. run the offending link command.
4. copy any of the compiler generated .pdb files that are necessary into
the directory.
5. zip up the directory and that is your link repro.
Incremental Linking
We start with incremental linking, as it is one of the big features that
can substantially reduce the link time. Occasionally we will get reports
of slowdowns from incremental linking when going to VC2003 from VC6. It
turns out that there have been very few changes to the behavior of the
linker, but rather what has often changed is the project, with respect to
the project system, during migration.

Incremental linking works by only linking in new changed functions and then
adding a stub from the old location that points to the new linked in
function (yes, an extra indirection).

A good place to read up on the feature, if you've never used it, is at:
http://msdn.microsoft.com/library/de...us/vccore98/HT
ML/_core_.2f.incre mental.asp.

Most of the complaints associated with incremental linking are when the
linker decides NOT to incrementally link. There are several situations
when the linker will do a full link rather than an incremental link. Here
are a couple of things to watch out for:

Library Changes
If a library is changed, added, or removed then a full-link will take
place. This is similar to a new set of .obj files being added or removed.

Exports Changed
If an export is added or removed from the program then a full link will
take place.

IDL Issues
In VS2003 the linker does not properly ignore the IDL data when the
/IGNOREIDL switch is used. This results in the marking of all modules with
IDL symbols as changed, and this causes as eventual exhaustion of padding -
and from there an end to incremental linking. This has been fixed in
VS2005.

To see a complete list of reasons that full-links will be invoked rather
than incremental links see linker warnings LNK6001-6026.

Slow Link Times
Some customers have noted slower link times as they move from VC6 to
VC2003. In this section we list some of the potential problems that we
know about and various tricks and tips.

Directives
The linker's handling of directives left something to be desired in VC2003,
and for this reason code with lots of directives can suffer. In particular
__declspec(expo rt), as it's likely the most common linker directive.
Besides that, don't export functions that you don't need to export.
Besides it becoming a code maintenance nightmare, it also increases your
link times.

Use Pre-Compiled Header Files Effectively
One of the big problems we see is not using pre-compiled header (PCH) files
(or somehow the PCH files are no longer get generated correctly). Often
times a good way to determine that this is the culprit is to look at the
size of your object files. If they're all inordinately large object files
(and especially if they're all nearly the same size)

Don't Put Libraries in Libraries
The first question one should ask themselves is "why do I want to do this?"
After enough going back and forth and thinking you will likely come to the
conclusion that there is no good reason. The linker is more efficient with
more smaller libraries, rather than a big conglomeration of libraries.

Things Are Bigger
Moving to VC2003 from VC6 will often use new headers from the CRT, STL,
Platform SDK, etc… Many of these files have become larger since VC6, and
just due to the mere fact that the linker has to deal with more causes link
times to increase.

Optimization vs Link Time
If you're in the "compile, link, test" phase of development then it may
make sense to turn off /OPT:REF and /OPT:ICF in release builds. The
resulting code may be larger, but it will build more quickly.

VS2005 has a Faster Linker
There has been various performance fixes, including redoing one of its main
hash functions, which will result in faster link times! I know, people
don't like to hear "in the next version it's better", but I just want to
let you be aware that things do get better.

--------------------
| From: "TOM" <no****@noprovi der.nodomain>
| References: <Os************ *@TK2MSFTNGP12. phx.gbl>
<4F************ *************** *******@microso ft.com>
<eZ************ **@TK2MSFTNGP12 .phx.gbl>
| Subject: Re: REPOST: extremely long link times
| Date: Tue, 27 Jul 2004 21:28:19 -0500
| Lines: 112
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
| Message-ID: <uX************ **@tk2msftngp13 .phx.gbl>
| Newsgroups: microsoft.publi c.dotnet.langua ges.vc
| NNTP-Posting-Host: 4.7.8.109
| Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!tk2msftngp1 3
..phx.gbl
| Xref: cpmsftngxa10.ph x.gbl microsoft.publi c.dotnet.langua ges.vc:39020
| X-Tomcat-NG: microsoft.publi c.dotnet.langua ges.vc
|
| Steve:
|
| Some of the MS applications try to access the Internet whether or not
| there is
| anything that needs to be found. One of the office applications stalls
until
| the TCP
| time-out occurs (1-2 minutes before starting).
|
| Additionally, I found I have to clear the IE6 browser history
| periodically, and if I
| have any URL shortcuts on the desktop that refer to an FTP site, I have to
| remove those
| as well, or after awhile all file menus stall for about 2 minutes.
|
| -- Tom
|
|
|
|
| "Steve McLellan" <sjm.NOSPAM AT fixerlabs DOT com> wrote in message
| news:eZ******** ******@TK2MSFTN GP12.phx.gbl...
| > Hi,
| >
| > 1. Nope, and it's linking that's the problem - compiling's generally
very
| > fast. In any case, it's not getting anywhere near maxing the processor
so
| > it's not the workload slowing it down.
| >
| > 2. It is only recompiling the minimum but incremental linking apparently
| > doesn't work under /clr.
| >
| > 3. I am now wondering whether it'd be better to split everything up into
| > separate DLLs, but I don't want to for a couple of reasons. And besides,
| > what puzzles me is why the linker seems to be sitting on its hands for a
| > minute or two, without seeming to do any work.
| >
| > Cheers,
| >
| > Steve
| >
| > "Fireangel" <Fi*******@disc ussions.microso ft.com> wrote in message
| > news:4F******** *************** ***********@mic rosoft.com...
| > >
| > > I'm a fairly newbie to C++ and the like, so feel free to ignore...
| > >
| > > Some questions / comments:
| > >
| > > 1. Are you using alot of #Define (or anything like that. Can't
| remember
| > what they are actually called)?? I've had the displeasure of hacking
| > somebodies old code that had ALOT of this stuff, and to compile it took
| > close to 4 min. I went ahead and took out as much as I could (W/o
killing
| > the app), and it was a noticable change.
| > >
| > > 2. You may want to consider using the option "Enable Minimal Rebuild"
| > under the projects configureation properties -> C/C++ -> Code
Generation.
| > If set to YES, the compiler will only create new OBJ for those files
that
| > have changed. It will keep the old OBJs and then link them. If you
only
| > change 1 file between, only 1 OBJ will be recreated (instead of them
all).
| > I think (not sure), but any files that include the file you change
(Using
| > #include) may have to be recompiled...
| > >
| > > 3. If you're just testing / debugging, why don't you make temp dll's
| for
| > any part of the code that is "Done" or not being checked. For
instance, I
| > have a Map.dll that containes all my stuff related to geographical maps.
| I
| > then include it as a referance, use #using, and that stuff never gets
| > compiled. I then create a "include all" project that has all the code
| files
| > in it. This does leave me with a lot of Test projects all over the
place,
| > but to test it does make it fairly fast.
| > >
| > >
| > > Can't think of anything else. Let me know if this helps...
| > >
| > >
| > > GE
| > >
| > > "Steve McLellan" wrote:
| > >
| > > > Hi,
| > > >
| > > > Sorry to repost, but this is becoming aggravating, and causing me a
| lot
| > of
| > > > wasted time. I've got a reasonably large mixed C++ project, and
after
| a
| > > > number of builds (but not a constant number) linking (and sometimes
| > > > compiling) becomes immensely slow, and task manager shows that
| link.exe
| > (or
| > > > cl.exe) is barely using any processor time, but an awful lot of RAM
| > (around
| > > > 150-200MB). I'm going to keep an eye on page faults since I can't
| think
| > of
| > > > anything else that could be causing this - the machine doesn't seem
to
| > be
| > > > thrashing and is fairly responsive during building. Can anyone
| recommend
| > > > anything?
| > > >
| > > > Thanks,
| > > >
| > > > Steve
| > > >
| > > >
| > > >
| >
| >
|
|
|

Nov 17 '05 #8
Hi,

This project has never incrementally linked (I was under the impression that
building a .NET assembly, incremental linking was turned off anyway - this
certainly seems to be the case). In any case, I wouldn't mind so much but
during linking, it seems just to amble for a little while. With /VERBOSE, I
see the beginning of pass 1 up to:

Processed /DEFAULTLIB:libc pmtd
Processed /DEFAULTLIB:LIBC MTD
Processed /DEFAULTLIB:OLDN AMES
Processed /DEFAULTLIB:MSCO REE.LIB
Processed /DEFAULTLIB:uuid .lib

And then there's a pause for about 40 or 50 seconds, with the processor time
at around 10%. Then the linker outputs:

Searching libraries

And processor usage goes up to close to 100% for the remainder of the link
time.

Thanks for the interest and the docs,

Steve

"Kang Su Gatlin [MS]" <ka******@micro soft.com> wrote in message
news:ms******** ******@cpmsftng xa10.phx.gbl...
Here's a copy of something I'm writing that may be of assistance in
general. If possible I'd like to get a repro of your problem. I'm trying
to understand what the various problems are with linking, and the more
customer issues I can help resolve, the better.

Thanks,

Kang Su Gatlin
Visual C++ Program Manager

[snip | > >
| > >
| > > GE
| > >
| > > "Steve McLellan" wrote:
| > >
| > > > Hi,
| > > >
| > > > Sorry to repost, but this is becoming aggravating, and causing me a | lot
| > of
| > > > wasted time. I've got a reasonably large mixed C++ project, and
after
| a
| > > > number of builds (but not a constant number) linking (and sometimes | > > > compiling) becomes immensely slow, and task manager shows that
| link.exe
| > (or
| > > > cl.exe) is barely using any processor time, but an awful lot of RAM | > (around
| > > > 150-200MB). I'm going to keep an eye on page faults since I can't
| think
| > of
| > > > anything else that could be causing this - the machine doesn't seem to
| > be
| > > > thrashing and is fairly responsive during building. Can anyone
| recommend
| > > > anything?
| > > >
| > > > Thanks,
| > > >
| > > > Steve
| > > >
| > > >
| > > >
| >
| >
|
|
|

Nov 17 '05 #9
Steve,

Given that this is managed, it is highly likely that this is when the
metadata is being processed/merged. If not, it may be a problem with the
directive strings which we have when there are multiple megabytes of them
such was what happens when lots of classes are exported from header files
but the header files are not in a PCH and are included throughout the
project.

After that 40-50 second pause when it begins to grind again, how much time
does it take?

Thanks,

Kang Su Gatlin
Visual C++ Program Manager

--------------------
| Reply-To: "Steve McLellan" <sjm.NOSPAM AT fixerlabs DOT com>
| From: "Steve McLellan" <sjm.NOSPAM AT fixerlabs DOT com>
| References: <Os************ *@TK2MSFTNGP12. phx.gbl>
<4F************ *************** *******@microso ft.com>
<eZ************ **@TK2MSFTNGP12 .phx.gbl>
<uX************ **@tk2msftngp13 .phx.gbl>
<ms************ **@cpmsftngxa10 .phx.gbl>
| Subject: Re: REPOST: extremely long link times

|
| Hi,
|
| This project has never incrementally linked (I was under the impression
that
| building a .NET assembly, incremental linking was turned off anyway - this
| certainly seems to be the case). In any case, I wouldn't mind so much but
| during linking, it seems just to amble for a little while. With /VERBOSE,
I
| see the beginning of pass 1 up to:
|
| Processed /DEFAULTLIB:libc pmtd
| Processed /DEFAULTLIB:LIBC MTD
| Processed /DEFAULTLIB:OLDN AMES
| Processed /DEFAULTLIB:MSCO REE.LIB
| Processed /DEFAULTLIB:uuid .lib
|
| And then there's a pause for about 40 or 50 seconds, with the processor
time
| at around 10%. Then the linker outputs:
|
| Searching libraries
|
| And processor usage goes up to close to 100% for the remainder of the link
| time.
|
| Thanks for the interest and the docs,
|
| Steve
|
| "Kang Su Gatlin [MS]" <ka******@micro soft.com> wrote in message
| news:ms******** ******@cpmsftng xa10.phx.gbl...
| > Here's a copy of something I'm writing that may be of assistance in
| > general. If possible I'd like to get a repro of your problem. I'm
trying
| > to understand what the various problems are with linking, and the more
| > customer issues I can help resolve, the better.
| >
| > Thanks,
| >
| > Kang Su Gatlin
| > Visual C++ Program Manager
| >
|
| [snip
| > | > >
| > | > >
| > | > > GE
| > | > >
| > | > > "Steve McLellan" wrote:
| > | > >
| > | > > > Hi,
| > | > > >
| > | > > > Sorry to repost, but this is becoming aggravating, and causing
me
| a
| > | lot
| > | > of
| > | > > > wasted time. I've got a reasonably large mixed C++ project, and
| > after
| > | a
| > | > > > number of builds (but not a constant number) linking (and
| sometimes
| > | > > > compiling) becomes immensely slow, and task manager shows that
| > | link.exe
| > | > (or
| > | > > > cl.exe) is barely using any processor time, but an awful lot of
| RAM
| > | > (around
| > | > > > 150-200MB). I'm going to keep an eye on page faults since I
can't
| > | think
| > | > of
| > | > > > anything else that could be causing this - the machine doesn't
| seem
| > to
| > | > be
| > | > > > thrashing and is fairly responsive during building. Can anyone
| > | recommend
| > | > > > anything?
| > | > > >
| > | > > > Thanks,
| > | > > >
| > | > > > Steve
| > | > > >
| > | > > >
| > | > > >
| > | >
| > | >
| > |
| > |
| > |
| >
|
|
|

Nov 17 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
6692
by: A Ratcliffe | last post by:
As you might have gathered from the Subject, I've been experimenting with using VBScript classes in my ASP pages to tidy the script up. Generally things are going well. Since I come from a C++ background, I have long made use of singleton objects, in various forms, and I can see an obvious use for one here but not sure if I can. I'll...
1
2537
by: Anthony | last post by:
Sorry about the repost but i didn't get any responses.... I am trying to make a simple page display a rss news feed.. I don't want the web server to connect to remote site because it doesn't work. I want the client to do it because my web server is behind a proxy (Tried proxycfg.exe on web server with no success) I am going nuts.....
83
5890
by: D. Dante Lorenso | last post by:
Trying to use the 'search' in the docs section of PostgreSQL.org is extremely SLOW. Considering this is a website for a database and databases are supposed to be good for indexing content, I'd expect a much faster performance. I submitted my search over two minutes ago. I just finished this email to the list. The results have still not...
12
4711
by: Arno R | last post by:
Hi all, This is a repost of a message posted at october 6. The answer I got was about MapiMessages.AttachmentIndex. I think I need the MSMAPI32.OCX to use this. (I don't have this file on my PC) My newsaccount wasn't working anymore until yesterday, so I'll try again. Question is: I know it is possible to send email with Access, but...
2
1804
by: Susan Bricker | last post by:
I went back to read my post and found an error in my description ... here is the post, again, corrected: The following error: "The current field must match the join key '?' in the table that seves as t the 'one' side of one-to-many relationship. Enter a record in the 'one' side table with the desired key value, and then make the entry...
0
846
by: Steve McLellan | last post by:
Hi, Just recently (last day or two) my link times (a mixed mode VC++ project) have gone up a lot. It was previously taking a minute or 2, but is now closer to 10, and I don't think I've added anything to cause it. Watching task manager I'm seeing that link.exe is taking very little processor time (between 0 and 6%, but mostly hovering...
67
2901
by: Scott M. | last post by:
Can anyone give me any ideas on why VS.NET 2003 running on XP Pro. (P4's with 1GB RAM) would take over 3 minutes to simply create a new ASP.NET Web Application on http://localhost? It seems that the IIS directory gets created right away, but it is not configured as an application directory until several minutes go by. Thanks, Scott M.
4
9576
by: BLob | last post by:
Hi, I need to create an RTF document with PHP. Actually, I am using an already created RTF document which with strings like %var% that I replace with $var before sending the document. I need to create a link like http://www.example.com/id_content=125 but my problem is that in the document produced : I can read...
4
3255
by: Owen Jenkins | last post by:
Hi, No-one replied to this when I sent it last week. Any bites out there today?? ----- My application allows users to create a new back end for separate purposes. It does this by using Make Table Queries and Indexing via SQL. For example ...
0
7827
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
1
7936
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
8195
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
6581
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5701
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
3820
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3845
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1434
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1158
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.