473,382 Members | 1,238 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,382 software developers and data experts.

I am so frusterated with how slow MSVC is

I can't tell you how frusterated I and my coworkers are with "MSVC 7.1 .net
2003" (what am I supposed to call this thing anyway?).

Compiling and linking take twice as long with "MSVC 7.1 .net 2003" than with
MSVC 6. My coworkers are angry at "MSVC .net 7.1 2003" and they're angry at
me for pushing it (due to better C++ compliance).

The problem is so pronounced, I'm shocked that this message board isn't full
of people complaining. My guess is that our project is somehow different
and "MSVC 7.1 .net 2003" has an extra hard time with it. We have 68
projects with approx. 15 files in each project. We use wxWidgets.

Also very frusterating is the way the IDE stops responding when doing things
like a) preparing to compile b) compiling c) linking. Even starting the
IDE is a painfull experience, but luckily I only do that a couple times per
day.

Not to mention that when I change one .cpp in one of my projects, "MSVC 7.1
..net 2003" slowly loops through all the projects to see if anything needs to
be recompiled and does a very time consuming full link. Makes it very
difficult to make quick changes and debug (unlike MSVC 6).

If MSVC didn't have such a wonderful breakpoint/watch-window interface, we'd
have moved to distcc builds on cygwin. Faster and the makefile approach
allows for different configurations without putting togeter a billion .sln
and .vcproj files (maintenance nightmare).

I'm sorry to sound like a crank, but I am just so worked up and have to come
vent every month or so.

Rudy
Nov 17 '05 #1
8 1899
Chris Stankevitz wrote:
I can't tell you how frusterated I and my coworkers are with "MSVC
7.1 .net 2003" (what am I supposed to call this thing anyway?).

Compiling and linking take twice as long with "MSVC 7.1 .net 2003"
than with MSVC 6. My coworkers are angry at "MSVC .net 7.1 2003" and
they're angry at me for pushing it (due to better C++ compliance).

The problem is so pronounced, I'm shocked that this message board
isn't full of people complaining. My guess is that our project is
somehow different and "MSVC 7.1 .net 2003" has an extra hard time
with it. We have 68 projects with approx. 15 files in each project. We
use wxWidgets.


It's the large number of projects in the solution that has the largest
impact. The good news is that VS 2005 is back near the speed of VC6 for
building.

-cd
Nov 17 '05 #2
Chris Stankevitz wrote:
I can't tell you how frusterated I and my coworkers are with "MSVC 7.1 .net
2003" (what am I supposed to call this thing anyway?).

Compiling and linking take twice as long with "MSVC 7.1 .net 2003" than with
MSVC 6. My coworkers are angry at "MSVC .net 7.1 2003" and they're angry at
me for pushing it (due to better C++ compliance).

The problem is so pronounced, I'm shocked that this message board isn't full
of people complaining. My guess is that our project is somehow different
and "MSVC 7.1 .net 2003" has an extra hard time with it. We have 68
projects with approx. 15 files in each project. We use wxWidgets.

Also very frusterating is the way the IDE stops responding when doing things
like a) preparing to compile b) compiling c) linking. Even starting the
IDE is a painfull experience, but luckily I only do that a couple times per
day.

Not to mention that when I change one .cpp in one of my projects, "MSVC 7.1
.net 2003" slowly loops through all the projects to see if anything needs to
be recompiled and does a very time consuming full link. Makes it very
difficult to make quick changes and debug (unlike MSVC 6).

If MSVC didn't have such a wonderful breakpoint/watch-window interface, we'd
have moved to distcc builds on cygwin. Faster and the makefile approach
allows for different configurations without putting togeter a billion .sln
and .vcproj files (maintenance nightmare).

I'm sorry to sound like a crank, but I am just so worked up and have to come
vent every month or so.

Rudy

The dependency checking for a build can be more or less fixed with a
visual studio plugin

http://www.workspacewhiz.com/FastSol...ildReadme.html

The thing that really bugs me is that VS occasionally freezes for 4-8
seconds in the edtior when all I want to do is update a comment or
something innocuous (rebuilding browse or intellisense info as far as i
can tell for the entire project)
Nov 17 '05 #3
he*@40th.com wrote:
CS [Wed, 26 Jan 2005 14:51:31 -0800]:
Also very frusterating is the way the IDE stops responding when
doing things


I heard something about this problem/fix being adjustable in the
"next" version (but I'm not sure how many nexts have come and gone
since then). Until then, this does the trick nicely, and no real
effect on the total times, but a big difference in system response
during.

http://www.codeguru.com/Cpp/V-S/tips...9/?thread=4744


Nifty little hack. For the benefit of other readers: The file offset in
vcspawn.exe from vc7.1 is 0x113f.

Now, if there was just such a hack for C# compilations too... but they don't
use vcspawn.

-cd
Nov 17 '05 #4
he*@40th.com wrote:
CD- [Thu, 27 Jan 2005 06:52:51 -0800]:
The file offset in >vcspawn.exe from vc7.1 is 0x113f.


Close, but not quite right. The link has the correct location.


0x113f is where the entire code snippet referenced in the first posting
begins. 0x1140 is where the single byte to change is located. Sorry for
adding to the confusion - I had to re-read the page several times before I
spotted the file offset - the more apparent offset shown is 0x401d3f which
is clearly not a file offset.

-cd
Nov 17 '05 #5
"Tarek Madkour [MSFT]" <ta****@online.microsoft.com> wrote in message
news:Xn*****************************@207.46.248.16 ...
Yes, unfortunately in VS2003 IntelliSense did acquire locks on the
primary thread in some scenarios causing such intermittent hangs.
We're working on removing these in VS2005.


Hi Tarek,

Thanks so much for your reply! Is there a way to disable IntelliSense?
Would disabling IntelliSense eliminate the primary thread locking issue I
describe?

Thanks,

Chris
Nov 17 '05 #6
"Chris Stankevitz" <ch******@stankevitz.nospamplease.com> wrote in
news:eZ**************@TK2MSFTNGP10.phx.gbl:
Thanks so much for your reply! Is there a way to disable
IntelliSense? Would disabling IntelliSense eliminate the primary
thread locking issue I describe?


One workaround is to delete feacp.dll which would totally disable
intellisense and everything that's based on it (e.g. class view, some
debugger breakpoint validation, some 3rd party plugins).
Alternatively, you could make the .ncb file for the project read-
only.

Thanks,
--
Tarek Madkour, Visual C++ Team
This posting is provided "AS IS" with no warranties, and confers
no rights.
Nov 17 '05 #7
It is true that dependancy checking is unneccesarily slow.
We also found that VC7 has quite different performance characteristics compared to 6.

For instance, if you include a header file that declares lots of constants that are object instances, such as CString constants, the 7.1 compiler is very slow. If you move such a file in a precompiled header, it compiles a lot faster (up to three times on our sources).

I also recently found out that 7.1 has the capability to recompile a dll without rewriting the lib file. VC does this for two of our dlls, not surprisingly the ones which we recreated from scratch in VC7.1. It does not work for vcprojs converted from other visual studio versions. Who knows the secret project setting that affects this? Most of my build time is now spent watching VC rebuild dependent dlls for no reason.

From http://www.developmentnow.com/g/42_2...low_MSVC_is.ht

Posted via DevelopmentNow Group
www.developmentnow.com/
www.developmentnow.com
Nov 17 '05 #8
Jan de Vaan <devaan@freelerDOTnl> wrote:
It is true that dependancy checking is unneccesarily slow.
Try Fast Solution Build. It's free and it's good.
(Only the linker redirection ones gave us trouble.
Uninstalling the thing and reinstalling it without
linker redirection fixed this.)
We also found that VC7 has quite different performance characteristics compared to 6.

For instance, if you include a header file that declares lots of constants that are object instances, such as CString constants,
the 7.1 compiler is very slow. If you move such a file in a precompiled header, it compiles a lot faster (up to three times on
our sources).
We ran into this one, too.
What helped was declaring the constants as 'extern'
and compiled the definitions seperately in their
own .cpp file. Parsing const declarations seems to
be a lot faster than parsing const definitions and
this way the definitions have to be parsed only
once.
I also recently found out that 7.1 has the capability to recompile a dll without rewriting the lib file. VC does this for two of
our dlls, not surprisingly the ones which we recreated from scratch in VC7.1. It does not work for vcprojs converted from other
visual studio versions. Who knows the secret project setting that affects this? Most of my build time is now spent watching VC
rebuild dependent dlls for no reason.
<plug>
Have you looked at IncrediBuild? (www.xoreax.com)
It distributes compilations over the network. We
have recently evaluated it and found it to be very
helpful. On one big project the build times on our
(dedicated 2CPU) build machine went down from about
45mins to about 10mins. One small project I was
recently working on built within 2:30mins instead
of about 8mins. As I was working on some headers
that are included everywhere, I was very happy that
this came together with the evaluation. (It's fun
to watch your project build on a dozen machines
within a fifth of the time.)
We're still undecided how many licenses we will buy.
I am looking forward to the day this is settled.
Just testing it made us all addicted. :)
</plug>
[...]

Schobi

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

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett
Nov 17 '05 #9

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

Similar topics

2
by: Eric Brunel | last post by:
Hi all, We're trying to communicate with Microsoft Visual C++ 6.0 via COM to make it perform a few operations. Our main need is to set a breakpoint on a given line in a given file. We ended up...
2
by: AIM | last post by:
Error in msvc in building inheritance.obj to build hello.pyd Hello, I am trying to build the boost 1.31.0 sample extension hello.cpp. I can not compile the file inheritance.cpp because the two...
0
by: Leor Zolman | last post by:
The Intel C++ version of STLFilt (my STL Error Message Decryptor utility) has now been updated to support Intel C++ 8 (currently in Beta) along with version 7. All three MSVC libraries are...
2
by: Robert Oschler | last post by:
Need help with HEAP CORRUPTION and my MSVC 6 DLL I have a MSVC 6 DLL that I've written. It is used heavily by a Delphi 6 app I've written. For two months everything has been working fine. ...
6
by: Uli | last post by:
Hello, I'm trying to use a DLL (by static linking) which was compiled with Borland C++Builder (BCB) in Visual C++ (Visual-Studio 2003). All functions are declared with the directive 'extern...
6
by: ma | last post by:
Hello, Some questions about upgrading to MSVC 2008. 1- I am using MSVC2005, Do you recommend that I upgrade to MSVC 2008 Beta 2? 2- When the MSVC2008 will be officially release? 3- Where...
17
by: fl | last post by:
Hi, I am learning C++ from the following C++ website, which has some very good small examples. For the second Fraction example, which has five files: Main.cpp Fraction.cpp Fraction.h...
2
by: BruceWho | last post by:
I downloaded boost1.35.0 and built it with following command: bjam --toolset=msvc-7.1 --variant=release --threading=multi -- link=shared --with-system stage and it failed to compile, error...
3
by: ameyav | last post by:
I have migrated a c++ project from msvc 7.1 using boost 1.32 to msvc 9 using boost 1.38. I have however noticed that the binary compiled under msvc 9 is almost 25% slower than the one compiled...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

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.