[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

C++ Project Crisis..

Posted on 2008-11-20
8
Medium Priority
?
688 Views
Last Modified: 2013-11-12
Im a newbie programmer who joined his first company just passed out of college, then after 1 year I learnt design patterns, looked at some open source CAD program source codes first, then started on our company inspection software which is almost like a CAD software but with too many other complex structures and semantics etc.

Ambitiously learnt openGL too and then started on my project and made it into many classes used patterns, and some ideas of my own, and reached the final stage. The front end uses .NET and my code is purely native. But all of them are in the same project making it a CLR C++ project. MY opengl code is a separate DLL (I made it ) More over software communicates to inspection machine through COMM port and that code is also separated in a DLL.. Now its 2.5 years since I joined the company, its almost a year since I started this project.

Finally we have some features to automate things. So I had to serialize many classes. After adding boost serialization the compile time is 9.5 minutes. Before it was 2 mins 20 secs.. Even then compile time was high... It has some 220 - 250 files .h and .cpp and only 8000-10000 lines of code.. I not an expert with experience... Its killing me.. Im helpless.. I dont want this project to die.. Give me some tips.. Is it possible for a guy with no experience to do such a project ? That too only 2 guys working on it. I do most of the work.. the other guy does all of the frontend with .NET.. when companies like adobe, autodesk create software with a huge team with experienced people...

Software features, CAD graphics with same pan, zoom, snap points, intersection points, workspaces and good UI which reflects the shapes, selection rectangles, undo/redo... not 3d.. but some 3d features like cloud points are there..

Moreover its multithreaded, the graphics run on a separate thread, where all the OGL code is run.. I use SetEvent and Waitforsingleobject functions in it to render when needed. I use STL also.. maps and lists. The one year time includes learning time also. I dont want to lose.. please help me experts.. recently i started using SVN.. before I was not using any source control also.. Im improving myself.. but still scared if there is any fundamental mistake in this project.
0
Comment
Question by:Anniyan
  • 5
  • 2
8 Comments
 
LVL 2

Author Comment

by:Anniyan
ID: 23002179
Also has a rich UI with toolbars, many like the ones in photoshop, with many tools, features, 3 OpenGL windows for different purposes.. all of them pan/zoom drawable, selectable..
0
 
LVL 2

Author Comment

by:Anniyan
ID: 23002183
Im explaining all this.. so that you get a better idea about the software and someone might help in telling what I may be lacking in
0
 
LVL 39

Expert Comment

by:itsmeandnobodyelse
ID: 23002926
if compilation turns slow, it mostly has to do with environment or hardware/system software rather than with the C++ code. Did you install a new antivirus scanner? If any new object file was scanned while building, the performance losses can be tremendous. Did you check the eventvwr for errors? Some years ago, I had a disc producing about 1000 errors a minute. If using CLR you need to make sure that none of the software components for build was loaded from a remote server. E. g. the boost must be installed localy at each workstation *and must not* get any parts from the Internet. You easily could check that by disconnecting from net while building. Unfortunately there could be many other reasons as well, e. g. too less disc space or highly fragemented discs, unsufficient memory or virtual space, VISTA operation system, a mis-configured firewall, a service which takes most of the CPU, and, and, ...

Try to build on a new machine where only the minimal things were installed.  
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 14

Expert Comment

by:wayside
ID: 23003651
Are you using pre-compiled headers?
0
 
LVL 2

Author Comment

by:Anniyan
ID: 23004058
thank you very much for your comments itsmeandnobodyelse.... Im aware of all these things already.. I stop all other extra processes... Stop all unwanted services too in XP. I have 1GB RAM in a Core 2 Duo with 965 Motherboard.. and a extra graphics card too.. XP is in top notch for sure.. I do development on the local computer only...

@wayside yes of course i do use it..  thanks :)

I will be happy if someone links me to some sources on how to organise files in big projects and manage the compile time too.. May be separate certain more parts as DLL s... I already read the article on gamedev.net about organizing files.
0
 
LVL 14

Expert Comment

by:wayside
ID: 23004628
Get the Sysinternals process monitor (www.sysinternals.com) and see what is happening on the box when you do a build. Are the compiler processes max'ing out the cpu?


0
 
LVL 2

Author Comment

by:Anniyan
ID: 23010408
Yes I forgot to add.. the system becomes very slow when compiling.. and I should say all this happens only after I added the serialization library boost. When I went to task manager it showed almost 500+ MB used for compiler process.

Just because of adding one library will things change soo much ?
0
 
LVL 2

Accepted Solution

by:
Anniyan earned 0 total points
ID: 23051207
Well I worked a way around. I just separated the internal classes that don't belong to UI as a separate DLL. Now atleast I don't have to wait till everything compiles, its improved with this way.

My Heartfelt Thanks to everyone for Putting efforts to help me.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Software development teams often use in-memory caches to improve performance. They want to speed up access to, or reduce load on, a backing store (database, file system, etc.) by keeping some or all of the data in memory.   You should implement a…
Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
Suggested Courses

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question