473,769 Members | 6,208 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Slow link times

Why is "Visual Studio .net 2003 7.1 c++" so much slower than VS6 at linking?

It looks like "Visual Studio .net 2003 7.1 c++" doesn't even do incremental
linking! I make one very minor change in a .cpp from one of my thirty
projects and the whole thing links! (I turned on verbose linking to verify
this.)

Is there something else I need to do to turn on incremental linking?

Rudy
Nov 17 '05
22 3765
"Tarek Madkour [MSFT]" <ta****@online. microsoft.com> wrote:
From: "Hendrik Schober" <Sp******@gmx.d e> [...]
I believe it's the code generation phase when the
"vc.exe" process just uses all available processor
resources. This not only blocks the IDE, but also
everything else on the machine.

[...]

I think you mistyped vc.exe (I don't know of one). Who was consuming most
cycles: devenv.exe, vcspawn.exe or cl.exe?


Ooops, sorry. "cl.exe".
If it's cl.exe, then it's a good thing :) If it's devenv or vcspawn then we
should take a look at that. A callstack would really help here.
I don't think it's a good thing when it takes
_all_ processor time (unless it's forced to
collaborate by setting down its priority). At
least, VC6 didn't do this. Neither do other
compilers I have access to.
[...]

Actually, I want to be able to specify the order in
which the projects appear in the Solution Explorer
and have the IDE buils them in exactly this order.
And I want to be able to do the same with each file
within the folders of a project.
[...]

That proves to me once more that there is a customer out there for any
scenario that I can or cannot think of. I must admit that this usage
scenario never crossed my mind :)


Oh yeah, perhaps I'm just another kind of
weirdo... :o>
If you either
o implemented two-phase lookup or
o decreased turn-around times for the
scenario where I change a header and have
to re-compile dozens or hundreds of files
by a factor of about ten :^>
it wouldn't be so bad anymore. However, as it
is, I often think very hard in order to find
the file that is most likely to trigger an
error from the changes I made and compile this
file manually, before I have the whole solution
built. (If the IDE obeyed the order I put the
stuff, I would only have to think once.)
Assume you have a project with some template
stuff in it. Only one cpp file will instanciate
these templates, but all others need to see
the declarations:

+-prj
+-TemplStuff
| +-templ.h
| +-templ.cpp
+-TemplUser1
| +-templuser1.cpp
+-TemplUser2
| +-templuser2.cpp
+-TemplUser3
+-templuser3.cpp

Now, only "templ.cpp" will instanciate the
templates and therefor triggers any errors. If
the IDE would just compile everythign in the
order I put it, that would be fine. But as it
is, it might decide to compile everything else
first, so I find the error in the last file it
compiles, and have to go back and compile
everything else again.
In Whidbey, we are adding a new feature to allow you to logically organize
your projects into folders in the solution. It will not help with your
specific scenario but it will help you visually order projects in a
solution.
Oh my, it is _especially_ annoying if I'm able
to put everything neatly into the right order
and _still_ the IDE couldn't care less... <g>
Thanks


Schobi

--
Sp******@gmx.de is never read
I'm Schobi at suespammers dot org

"Sometimes compilers are so much more reasonable than people."
Scott Meyers
Nov 17 '05 #21
/test tells me the reason for the full link. Apparently a "library
changed." Which library changed to cause a full link? (see output below)

Thanks,

Rudy

Linking...
Processed /NODEFAULTLIB:na fxcwd.lib
Processed /NODEFAULTLIB:li bcd.lib
Processed /NODEFAULTLIB:li bcid.lib
Processed /NODEFAULTLIB:ms vcrt.lib
LINK : LNK6028: file alignment: 512, section alignment: 4096
Processed /NODEFAULTLIB:na fxcwd.lib
Processed /NODEFAULTLIB:li bcd.lib
Processed /NODEFAULTLIB:li bcid.lib
Processed /NODEFAULTLIB:ms vcrt.lib
LINK : LNK6010: library changed; performing full link




"Kang Su Gatlin [MS]" <ka******@micro soft.com> wrote in message
news:1g******** *****@cpmsftngx a06.phx.gbl...
Hi Rudy, we are definitely interested in a link-repro and/or the output
data that you currently have. Also use /time to get per pass timings.

Also could you ensure that you're linking 7.1 code, with the 7.1 linker.
If you're linking 6.0 code with the 7.1 linker, this can slow things down.

You send this info directly to me at:

ka******@micros oft.com
Thanks,

Kang Su Gatlin
Visual C++ Program Manager

--------------------
| From: "Ronald Laeremans [MSFT]" <ro*****@online .microsoft.com>
| References: <uh************ **@TK2MSFTNGP12 .phx.gbl>
<e1************ **@TK2MSFTNGP12 .phx.gbl>
<#F************ **@TK2MSFTNGP10 .phx.gbl>
<#Q************ **@TK2MSFTNGP11 .phx.gbl>
<uA************ **@TK2MSFTNGP10 .phx.gbl>
<DC************ *************** *******@microso ft.com>
<Od************ **@TK2MSFTNGP11 .phx.gbl>
| Subject: Re: Slow link times
| Date: Mon, 12 Apr 2004 13:03:06 -0700

| I pinged the 2 teams. You should be contacted shortly. Send me an email
(the
| obvious transformation of my posting alias will give you my email address) | if you haven't been contacted in the next few days.
|
| Sorry for the delay.
|
| Ronald
|
| "Rudy Ray Moore" <ru*******@hotm ail.com> wrote in message
| news:Od******** ******@TK2MSFTN GP11.phx.gbl...
| > Rick,
| >
| > The problem was not resolved. FYI, nobody from MS contacted me.
| >
| > Rudy
| >
| > "Rick Olson" <an*******@disc ussions.microso ft.com> wrote in message
| > news:DC******** *************** ***********@mic rosoft.com...
| > >
| > > Hi Ronald,
| > >
| > > I have been experiencing the same link behaviour that Rudy describes. | Was
| > the problem resolved and if so, was there a solution or workaround that | > could be shared with the rest of us?
| > >
| > > Thanks for the help,
| > >
| > > --Rick Olson
| > >
| > > ----- Ronald Laeremans [MSFT] wrote: -----
| > >
| > > Hi Rudy,
| > >
| > > Thanks for putting that page together. I asked the folks from the | IDE
| > team
| > > (for the rebuild issue and the other IDE comments) and the linker | > team to
| > > take a look and contact you. In the unlikely case that doesn't
| happen
| > over
| > > the next week or so, please ping me (first name plus first letter | of
| > last
| > > name at microsoft dot com).
| > >
| > > Ronald Laeremans
| > >
| > > "Rudy Ray Moore" <ru*******@hotm ail.com> wrote in message
| > > news:%2******** ********@TK2MSF TNGP11.phx.gbl. ..
| > > >> Ronald,
| > > >> I appreciate your interest. We are not using any managed code | > (it's all
| > > > native). I have compiled some statistics and provided some
| outputs
| > for
| > > you
| > > > to look at if you are interested. Compile/links are 50-600%
| slower
| > with
| > > 7.1
| > > > for regular and incremental builds respectively.
| > > >> http://www.stankevitz.com/visualstudio/
| > > >> Rudy (real email address appears at the bottom of that page)
| > > >> "Ronald Laeremans [MSFT]" <ro*****@online .microsoft.com> wrote | in
| > message
| > > > news:%2******** ********@TK2MSF TNGP10.phx.gbl. ..
| > > >> Hi Rudy,
| > > >>>> Does this project contain any managed code (i.e. code
compiled
| > with the
| > > > CLR
| > > >> switch)? Incremental linking does not work for managed or
mixed
| > images.
| > > > And
| > > >> in addition linking them is significantly slower. We are
hoping
| to
| > > address
| > > >> both issues longer term.
| > > >>>> If it is a fully native image, we would be interested in
| taking
| > a look
| > > at
| > > >> why incremental linking doesn't work. Let me know so I can
have
| > someone
| > > >> contact you in that case.
| > > >>>> Thanks
| > > >>>> Ronald Laeremans
| > > >> Visual C++ team
| > > >>>> "Rudy Ray Moore" <ru*******@hotm ail.com> wrote in message
| > > >> news:e1******** ******@TK2MSFTN GP12.phx.gbl...
| > > >>>>>> Oh, and I did turn on incremental linking: Project
Settings
| |
| > Linker |
| > > >>> General | Enable Incremental Linking (Yes)
| > > >>>>>> "Rudy Ray Moore" <ru*******@hotm ail.com> wrote in message | > > >>> news:uh******** ******@TK2MSFTN GP12.phx.gbl...
| > > >>>> Why is "Visual Studio .net 2003 7.1 c++" so much slower than | VS6
| > at
| > > >>> linking?
| > > >>>>>>>> It looks like "Visual Studio .net 2003 7.1 c++" doesn't | even
| > do
| > > >>> incremental
| > > >>>> linking! I make one very minor change in a .cpp from one of | my
| > > thirty
| > > >>>> projects and the whole thing links! (I turned on verbose
| > linking to
| > > >>> verify
| > > >>>> this.)
| > > >>>>>>>> Is there something else I need to do to turn on
| incremental
| > linking?
| > > >>>>>>>> Rudy
| > > >>>>>>>>>>>>>>> >>>>>
| >
| >
|
|
|

Nov 17 '05 #22
Rick,

My app always does a full link.

Specifying "/test" to the linker tells you the reson for the full link.
Here's the reason given for the full link. For me, MSVC reports the
following reason:

LINK : LNK6010: library changed; performing full link

What does it say for you?

Rudy

"Rick Olson" <an*******@disc ussions.microso ft.com> wrote in message
news:C5******** *************** ***********@mic rosoft.com...
Hi again gang,

Just to add some more information to this, I ran some tests between VS 6 (sp5) and Visual Studio.Net (7.1.3088). My project is all C++, native, no
managed code. With incremental linking enabled in both my projects, the
link times are incredibly different between the two VS versions. If I
add/remove a blank line from a file and re-build, VS 6 takes about 2-3
seconds to compile/link. VS.Net for the same file takes about 38 seconds.
I turned on VERBOSE output for the linker and it sure appears that the
VS.Net version is NOT doing an incremental link. It is searching all the
libraries to resolve references. The verbose output of VS 6 is about 3
lines long and says something about Start Pass2, lists the object
corresponding to the source file I changed, and End of Pass 2.
I can provide any information to any of you at Microsoft to help resolve this problem (project files, link outputs, etc.) This has been driving me
nuts since we moved over to VS.Net.
Thanks for any help you can provide!

--Rick Olson

Nov 17 '05 #23

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

Similar topics

2
4836
by: GSpiggle | last post by:
Have recently upgraded to Windows XP and latest Access 2003 from Windows 98 and Access 97. Distribute a lot of front end applications linked to network based data files. During normal working hours the loading of forms and reports in design mode is slow; response time to keyboard/mouse commands is horrible. After network activity is slowed down, normal design reactions resume. Yes, I have refreshed the links in my applications. Have...
2
3353
by: David | last post by:
Hi, We have an internal network of 3 users. Myself & one other currently have individual copies of the front-end MS Access forms and via our individual ODBC links we have used the: File > Get External Data > Link Tables > select ODBC Databases facility to link to our back-end MySQL Server. On both our machines the tables appear in the window very quickly and if we hit 'Select All', all the tables start loading really quickly into our...
8
2338
by: BlueBall | last post by:
I am writing some kind of network testing tool and I have wrote the following code in ASP.NET with C# int size= 10048576; // around 10 MB data string buffer = ""; for (int j=1; j<=1024; j++) { buffer = String.Concat(buffer, "x"); // I tried buffer += "x"; same performance }
0
3169
by: Andrew Dowding | last post by:
Hi Everybody, I have been looking at problems with my Windows Forms C# application and it's little Jet 4 (Access) database for the last few days. The Windows Forms app implements a facade and implementation, data abstraction layer. But because each data adapter in the implementation layer has a connection object that opens and closes as needed, I found I got several errors from the Jet engine when there were simultaneous connections to...
0
2625
by: roiavidan | last post by:
Hi, I'm having a bit of a problem with a small application I wrote in C#, which uses an Access database (mdb file) for storing financial data. After looking for a similiar topic and failing to find one, I'm posting the question in hope some one of you guys out there will have the answer for me...! I'll start with what I have, then I'll continue to the problem itself.
6
6712
by: MadMan2004 | last post by:
Hello all! I'm having a problem with a project I'm working on and I'd like to ask for anyone's input that might be helpful. I'm building a rather large front-end application connecting to an AS400 for the back end database and I'm experiencing slow response times when executing sql statements. Some select statement response times are bad. Not all, but some. And there doesn't seem to be a consistent factor in any of the sql statements...
4
1986
by: jonceramic | last post by:
Hi all, I have a situation I can't find any old messages or web-help on. I have a split database with a bizarre quirk. When I open up the front-end file, the main form opens up fairly quickly (~2-3 seconds.) If I copy my front end in Windows Explorer, the first time I open it, it's 2-3 seconds also.
7
6109
by: =?Utf-8?B?QWtlcmx1bmQ=?= | last post by:
User clicks a link that displays a customer card and financial stats (has a lot of database calls). Every 5 times the user clicks the same page/link it takes about 30 seconds (normal response time is <1 second) to display. Then you can click 4 times with a normal response time and the 5th the repsone time it is 30 seconds again. The page has exactly the same parameters every time but there seem to occur some "locking" that stops the action...
9
13043
by: SAL | last post by:
I have an ASP.NET 2.0 app that takes about 17 seconds to load on first startup but then is very fast after that. As I understand it from some posts in June, this is caused by the loading of the App Domain. We have both Cold Fusion and ASP.NET apps on this server and the Cold Fusion apps do not display such slowness on their first start up of the day. Is there a way to improve the load times of ASP.NET apps? I'm having to justify to my boss...
0
9587
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10211
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10045
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9993
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 most users, this new feature is actually very convenient. If you want to control the update process,...
0
9863
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 choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8870
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 launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5298
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 the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
3561
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2815
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 effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.