Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BCB 6 Compiler slowness and how to speed it up dramatically

160 views
Skip to first unread message

Andreas Hausladen

unread,
Dec 6, 2005, 9:36:47 PM12/6/05
to
While I'm improving bcc32pch I found the reason why code insight and the
IDE compiler are that slow.

First the speed differences on a (3GHz HT):
Project: 1 datamodule and 2 forms with some buttons and 3 lines of added
code: Close(), Show(), Close()

original IDE Compiler: 31.34 secs
After patching: 4.36 secs

What has happend:
The coreide.bpl registeres some callback functions to the IDE Compiler.
One of these is an OpenFile callback function that is called for every
file opening by the compiler. But not only for existing files. The
compiler uses OpenFile to test if a file exists or not. During compilation
this happens very, very, very, very, ... often. And what does the
coreide.bpl implementation of OpenFile do? It takes a lot of time for non
existent files, increasing the compiletime dramatically.

The patch is simple: Call GetFileAttributes before invoking the original
OpenFile implementation and return immediatelly if the file does not
exist. This modification has also a positive impact on the code insight.
The kibiz compiler also uses the OpenFile callback. Dam, is it fast now.
I haven't looked at Delphi's callback function yet, but I could bet there
is the same problem even if the compiler is a lot faster *I hope this is
so, because then Delphi would get a speed boost in compilation and code
insight*


And here a statistic:

OpenFile callback:
VALUE HANDLES:
execution time: 257.4814 ms
execution count: 794 (send to original OpenFile callback)
average exec. time: 0.324284 ms
INVALID_HANDLE_VALUE:
execution count: 7988 (catched by GetFileAttributes)

Until I have completed the next version of my bcc32pch tool, you can
download a very small package that fixes this bug.

The "IDE Compiler Speed Improvement" package can be downloaded from here:
http://unvclx.sf.net/downloads/IDECompilerSpeedFix.zip
The zip files contains a precompiled package for BCB 6 and BCB 5
(untested) and the source code.


--
Regards,

Andreas Hausladen

Message has been deleted

Jonathan Benedicto

unread,
Dec 6, 2005, 10:23:16 PM12/6/05
to
Andreas Hausladen wrote:
> Until I have completed the next version of my bcc32pch tool, you can
> download a very small package that fixes this bug.

I downloaded it, created a new package, and built it, as I have BCB4, and
WOW!!!, the code insight is almost instant.

This is a really wonderful improvement.

Jonathan


Alex Bakaev [TeamB]

unread,
Dec 7, 2005, 2:35:01 AM12/7/05
to
Andreas Hausladen wrote:
> While I'm improving bcc32pch I found the reason why code insight and the
> IDE compiler are that slow.

Andreas,

a big thank you :)

I've tried this with BCB 2006 and I think it made quite a bit of
difference. More final results tomorrow, when I can sit in front of my
PC, instead of being connected to it remotely (GoToMyPC service).

I had to modify the source to use different name for the coreide and
create an import library for bccide.dll.

Regards,
Alex

Zach Saw

unread,
Dec 7, 2005, 2:37:49 AM12/7/05
to
Wow... your patch made BCB 6's "broken" Code Insight competely usable now!
Thank you!!!


us...@domain.invalid

unread,
Dec 7, 2005, 2:50:08 AM12/7/05
to
I give Andreas a standing ovation for this patch !
After installing the patch within bcb6 the difference is just amazing.

I've a AMD64 3400 with 512 MB RAM
I have not done any optimization within the project I've compiled and
here are the facts :

WITH patch
avarage time 19 secs

WITHOUT patch
avarage time 81 secs

I've run the compilation about 5 times.
Shame on you Borland for not fixing this

Again : GREAT JOB Andreas

Oliver Rutsch

unread,
Dec 7, 2005, 3:55:51 AM12/7/05
to
Hi Andreas,

you did a great job with that.
But how did you find out that this callback was the bottleneck? Running
the IDE in a profiler? I doubt that you have a debug version of BCB?
I'm just curious how to find out these things. Especially if you have no
source code for it.
It's unbelivable that Borland wasn't able to fix that. They had more
than five years for it and I think this bug is not too hard to find if
you have the source code.
It's a pity that all the code speed up tools came up at the end of
BCB5/6 lifetime.
Our software group will switch now to MS and I think more and more that
this was the right decision. A compiler manufacturer who doesn't care
about its customers is a very high risk for software developing and I
doubt that this will change in the future.
So, enough complaining, we had too much threads in this direction ;-)

Bye, Oliver

Andreas Hausladen

unread,
Dec 7, 2005, 4:17:30 AM12/7/05
to
Oliver Rutsch wrote:

> But how did you find out that this callback was the bottleneck?

With lots of try and error with access vioalations.


> Running the IDE in a profiler?

No. I found this bottleneck after finishing the "command line IDE
compiler". And the reason why I wanted to use the IDE Compiler at command
line is that bcc32.exe is a different compiler and throughs an assertion
if you execute such code: "obj->prop = ++intValue;". The IDE Compiler does
not have this bug. And also the "force includes" and "advanced PCH
support" was easier to implement because of the callbacks.

> I doubt that you have a debug version of BCB?
> I'm just curious how to find out these things. Especially if you have no
> source code for it.

Again: Try and error with lots of access violations.

> It's unbelivable that Borland wasn't able to fix
> that. They had more than five years for it and I think this bug is not
> too hard to find if you have the source code.

It is hard to find because it is in a callback. The first impression you
get is that the compiler is very slow. And what should you do as an "core
IDE developer"? You think: "It's the compiler guys who should fix this."


> It's a pity that all the
> code speed up tools came up at the end of BCB5/6 lifetime.

My interest in C++ is back for some months now. Before I hadn't touched
C++ for years (Borland C++ 4.5).


--
Regards,

Andreas Hausladen

Graham Thompson

unread,
Dec 7, 2005, 4:41:41 AM12/7/05
to

"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
news:43964a50$1...@newsgroups.borland.com...
<snip>
: The zip files contains a precompiled package for BCB 6 and BCB 5

: (untested) and the source code.

Hi Andreas,

Sorry to bother you with this; I'm sure you don't want to open up a support
line for the patch...

I'm keen to try this out on our BCB5 installations; after installing your
precompiled package for BCB5 (using Component|Install Packages in the IDE;
no projects open) I get an AV in bccide.dll each time I shut BCB5 down (with
or without a project open), trying to read 00000000.

Would I be best off trying to create a new package for it?

Thanks for any advice,

GT


Andreas Hausladen

unread,
Dec 7, 2005, 5:05:42 AM12/7/05
to
Graham Thompson wrote:

> Would I be best off trying to create a new package for it?

I do not have BCB 5, so I can only guess on that. The precompiled package
is compiled with Delphi 5 (which does not have a C++ compiler).

--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 5:20:13 AM12/7/05
to
Jonathan Benedicto wrote:

> This is a really wonderful improvement.

Was the coreide40.bpl name correct or have you changed it to something
like "coride40.bpl" (without the "e") ?


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 5:18:58 AM12/7/05
to
Andreas Hausladen wrote:

> Graham Thompson wrote:
>
> > Would I be best off trying to create a new package for it?
>
> I do not have BCB 5, so I can only guess on that. The precompiled package
> is compiled with Delphi 5 (which does not have a C++ compiler).

Ah, that is because the
@Cominout@CPPCompilerInit$qqrpqqsr22Cominout@TCppCallbacks$v is not found
in coreide50.bpl. So the OrgComInOut pointer is never initialized. And
when unloading the package I restore the original Compiler's callback what
in your case tries to dereference a null pointer.

I assumed that the package is called coreide50.bpl. But Delphi 5 says
coride50.bpl (without the "e"). I'll update the download with this.


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 5:25:04 AM12/7/05
to
Andreas Hausladen wrote:

> I assumed that the package is called coreide50.bpl. But Delphi 5 says
> coride50.bpl (without the "e"). I'll update the download with this.

Updated.


--
Regards,

Andreas Hausladen

Graham Thompson

unread,
Dec 7, 2005, 5:31:11 AM12/7/05
to
"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
news:4396b810$1...@newsgroups.borland.com...
> Updated.

Andreas, you are a star. Your effort is very much appreciated; thanks!

GT


David Perkins

unread,
Dec 7, 2005, 5:30:15 AM12/7/05
to
> I assumed that the package is called coreide50.bpl. But Delphi 5 says
> coride50.bpl (without the "e"). I'll update the download with this.

I'm running BCBv5, can you let us know when you've updated it please.

Thank you.

Andreas Hausladen

unread,
Dec 7, 2005, 5:33:41 AM12/7/05
to
David Dean wrote:

> Would you mind fashioning this into a QC report? If it hasn't been
> fixed in BDS2006, that will help to get it fixed in the next version.

My copy of BDS2006 has not arrived yet (German version), and without proof
I do not add any QC report for this. I'm fine with someone else who has
BDS2006 and get a speed improvement with this patch reports it to QC.


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 5:34:24 AM12/7/05
to
David Perkins wrote:

> I'm running BCBv5, can you let us know when you've updated it please.

Already done.

But I'm still guessing from what I see in Delphi 5.


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 5:30:57 AM12/7/05
to
Alex Bakaev [TeamB] wrote:

> I had to modify the source to use different name for the coreide and
> create an import library for bccide.dll.

What is the name of coreide.bpl ? Is it coreide100.bpl ?


--
Regards,

Andreas Hausladen

Midiform

unread,
Dec 7, 2005, 5:32:06 AM12/7/05
to
Thank you very much!!!!!!!!!!!! It works for bcb v5 too.

Rgds,
Gianluca
"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> ha scritto nel
messaggio news:4396b810$1...@newsgroups.borland.com...

Andreas Hausladen

unread,
Dec 7, 2005, 5:44:11 AM12/7/05
to
Midiform wrote:

> Thank you very much!!!!!!!!!!!! It works for bcb v5 too.

Glad to hear. So my guessing was correct.


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 6:26:41 AM12/7/05
to
Andreas Hausladen wrote:

> I haven't looked at Delphi's callback function yet, but I could bet there
> is the same problem even if the compiler is a lot faster *I hope this is
> so, because then Delphi would get a speed boost in compilation and code
> insight*

The Delphi compiler is not affected by this bug.


--
Regards,

Andreas Hausladen

Sabetay Toros

unread,
Dec 7, 2005, 7:07:36 AM12/7/05
to
Anreaas,

Thank you for fixing this speed problem. It is unbelievable. It would
give me a boost in project developing. A last reminder, after loading
the the bpl, if there is any project.tds file it must be deleted.


Sabetay

Andreas Hausladen

unread,
Dec 7, 2005, 7:13:02 AM12/7/05
to
Sabetay Toros wrote:

> Thank you for fixing this speed problem. It is unbelievable. It would
> give me a boost in project developing. A last reminder, after loading
> the the bpl, if there is any project.tds file it must be deleted.

This should only happen when you install the package. After that the
package should be loaded before any project is opened.


--
Regards,

Andreas Hausladen

Roddy Pratt

unread,
Dec 7, 2005, 7:34:39 AM12/7/05
to
"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
news:43964a50$1...@newsgroups.borland.com...

> While I'm improving bcc32pch I found the reason why code insight and the
> IDE compiler are that slow.
>

Andreas, you are truly a coding god....

I have a QC already open on this: 13775. I feel your fix is a lot better
than my workaround...!

Regards - and thanks!
- Roddy


Oliver Rutsch

unread,
Dec 7, 2005, 8:04:00 AM12/7/05
to
Hi Andreas,

>
>>It's unbelivable that Borland wasn't able to fix
>>that. They had more than five years for it and I think this bug is not
>>too hard to find if you have the source code.
>
>
> It is hard to find because it is in a callback. The first impression you
> get is that the compiler is very slow. And what should you do as an "core
> IDE developer"? You think: "It's the compiler guys who should fix this."
>

Hmm, maybe this was hard to find, but you managed it without source or
debug code or help from the IDE developers. And I doubt you needed 5
years ;-)
I've tested the patch on the BCB5 IDE and it works great. It seems that
there are even some more functions much faster than before.
Looks like my ProjectMaker tool gets unemployed now :-()

Bye, Oliver

Sean Hoffman

unread,
Dec 7, 2005, 8:31:14 AM12/7/05
to
This is a very significant fix. If this had been available sooner, just
think, people might have actually *used* code insight. Borland, I have
two requests:

1. Make sure this gets fixed in BDS 2006
2. Promote this guy. Well, at least give him free tools..

Roddy Pratt

unread,
Dec 7, 2005, 8:30:49 AM12/7/05
to
"Oliver Rutsch" <oru...@sympatec.com> wrote in message
news:4396ddec$1...@newsgroups.borland.com...

>>>It's unbelivable that Borland wasn't able to fix
>>>that. They had more than five years for it and I think this bug is not
>>>too hard to find if you have the source code.

It's pretty unbelievable, and quite scary.

Some probably conservative guestimates:-
Over the last 5 years.
...20,000 BCB developers worldwide
...working 200 days/year
...have each spent 15 mins per day spent waiting for compiles
...costing $50/hour.

That's $250 million dollars, of which we now know 75% was unneccessary. and
don't even think of the environmental aspects...

I know the compile time is sometimes useful 'thinking time' - but not
always...

> Looks like my ProjectMaker tool gets unemployed now :-()

Maybe, but I think that projectmaker was vital in making people realise that
this problem was a true bug.

Without projectmaker, we'd just be bitching about how slow the compiler was
without realizing that 75% of the compiler's time was being thrown away in
the compiler<->IDE linkage.

- Roddy


Andreas Hausladen

unread,
Dec 7, 2005, 8:37:43 AM12/7/05
to
Roddy Pratt wrote:

> It's pretty unbelievable, and quite scary.
>
> Some probably conservative guestimates:-
> Over the last 5 years.
> ...20,000 BCB developers worldwide
> ...working 200 days/year

And then it requires 1 Delphi developer to fix the bug :-)
And finding this bug was only a side effect of my bcc32pch plugin.


--
Regards,

Andreas Hausladen

David Perkins

unread,
Dec 7, 2005, 9:00:51 AM12/7/05
to
> This is a very significant fix.

And slightly embarrassing for Borland IMO.

it's sped up my compilation by about 20%, but it has also made code
insight usable.

bryan patrick

unread,
Dec 7, 2005, 9:11:21 AM12/7/05
to

I vote for this as the Best Installed BCB Package of 2005.

Bryan.

"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
news:43964a50$1...@newsgroups.borland.com...

> --
> Regards,
>
> Andreas Hausladen


Sabetay Toros

unread,
Dec 7, 2005, 9:09:29 AM12/7/05
to

Andreas,

For my part, I'm ready to pay for this fix.

Thanks again and best regards

Sabetay

Simon Hooper

unread,
Dec 7, 2005, 9:16:35 AM12/7/05
to
Excellent work Andreas - thanks for sharing....I get about 25% improvement
in compile time for my main project.


Andreas Hausladen

unread,
Dec 7, 2005, 9:19:56 AM12/7/05
to
Sabetay Toros wrote:

> For my part, I'm ready to pay for this fix.

If you want you can donate (PayPal)
http://andy.jgknet.de/cpp/index.php?page=donation
But it is neither required nor a must.


--
Regards,

Andreas Hausladen

vavan

unread,
Dec 7, 2005, 9:17:49 AM12/7/05
to
On Wed, 07 Dec 2005 14:04:00 +0100, Oliver Rutsch
<oru...@sympatec.com> wrote:

>Looks like my ProjectMaker tool gets unemployed now :-()

please don't forget that there are some troubles that sometimes
prevent from building project within IDE so ProjectMaker shouldn't
sink in oblivion :)

--
Vladimir Ulchenko aka vavan

Andreas Hausladen

unread,
Dec 7, 2005, 9:20:56 AM12/7/05
to
Simon Hooper wrote:

> Excellent work Andreas - thanks for sharing....I get about 25%
> improvement in compile time for my main project.

The new bcc32pch Plugin will increase this much more with it's advanced
precompiled header support, and mtbcc32 (multithreaded compilation)
support.

--
Regards,

Andreas Hausladen

David Perkins

unread,
Dec 7, 2005, 9:31:41 AM12/7/05
to
> The new bcc32pch Plugin will increase this much more with it's advanced
> precompiled header support

Would you expect this to give much increase for those who are already
used PCH's ?

Carmelo Viavattene

unread,
Dec 7, 2005, 9:37:54 AM12/7/05
to
Andreas Hausladen ha scritto:
Fantastic job.
Some questions:
1) Where I find bcc32pch plugin?
2) To the page http://unvclx.sourceforge.net/downloads /, I have found
bcc32ide.zip: it is this?
3) Work on BCB5?
Thanks

Andreas Hausladen

unread,
Dec 7, 2005, 9:48:16 AM12/7/05
to
Carmelo Viavattene wrote:

> 1) Where I find bcc32pch plugin?

The current version 2.0 is outdated. I'm working on a much improved
version 2.5 and meight finish it tonight after excessive tests.


> 2) To the page http://unvclx.sourceforge.net/downloads /, I have found
> bcc32ide.zip: it is this?

That's the "IDE Command line compiler". That is the reason why I found
this bug. bcc32ide.exe is a bcc32.exe but it uses the IDE compiler. For
example some compiler assertions do not raise with the IDE Compiler but
with bcc32.exe. So replacing bcc32.exe in makefiles by bcc32ide.exe will
allow to compile projects that compile within the IDE but not at console.
bcc32ide.exe also adds some additional parameters:
-automake compile only modified files
-verbose output current compiled line number during compilation
-pch=filename_pch.h use advanced precompiled headers
-FIfilename force include (multiple, usage like -Iincludedir)
And it supports multi-process shared access to the adv. PCH file.
(required for mtbcc32.exe)

3) Work on BCB5?

It should. But it is only tested with BCB 6.

--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 9:40:50 AM12/7/05
to
David Perkins wrote:

If you set PCH to "Use but do not create" then it shouldn't be that
faster. But PCH usage will be easier. Just open the Project1_pch.h file
and add the #include statements for all header you want to be precompiled.
That's it. All .cpp, .cc, .c files will then use the headers. And the code
injection is done in memory (not as the old version of bcc32pch which
created filename_original.cpp files).
The difference between "Use but do not create" will be that the bcc32pch
Plugin does a dependency check for the PCH file and so changing the
Project1_pch.h file will result in recreating the PCH file.
And the "Files have changed. Do you want to recompile?" message can be
disabled what makes debugging a little bit faster (I know when I have
changed the code, the IDE does not have to check all dependencies for me
if I press F7, F8, ...)


--
Regards,

Andreas Hausladen

Carmelo Viavattene

unread,
Dec 7, 2005, 9:55:08 AM12/7/05
to
Andreas Hausladen ha scritto:

> Carmelo Viavattene wrote:
>
>>1) Where I find bcc32pch plugin?
>
> The current version 2.0 is outdated. I'm working on a much improved
> version 2.5 and meight finish it tonight after excessive tests.

Can I have bcc32pch plugin, and mtbcc32 (multithreaded compilation)?

Can You add these files in your page:
http://unvclx.sourceforge.net/downloads ?

> 3) Work on BCB5?
>
> It should. But it is only tested with BCB 6.
>

I can test with my BCB5, Ok?

Thanks

Andreas Hausladen

unread,
Dec 7, 2005, 10:03:06 AM12/7/05
to
Carmelo Viavattene wrote:

> I can test with my BCB5, Ok?

The worst case would be one or more access violations.


--
Regards,

Andreas Hausladen

Hans Galema

unread,
Dec 7, 2005, 10:07:56 AM12/7/05
to
Andreas Hausladen wrote:

> The
> compiler uses OpenFile to test if a file exists or not. During compilation
> this happens very, very, very, very, ... often.

You mean checking for the corresponding .0 file for a .cpp file for instance ?

> The "IDE Compiler Speed Improvement" package can be downloaded from here:
> http://unvclx.sf.net/downloads/IDECompilerSpeedFix.zip
> The zip files contains a precompiled package for BCB 6 and BCB 5
> (untested) and the source code.

Thanks to tips from Graham Thompson I could install the .bpl in BCB5.
I did see nothing happen. And I could not imagine that installing
a .bpl could influence the compiler. I still don't understand. But the
results are amazing. My main project compiled in two minutes. I reported
that a year ago or so. Now it contains 288 units and it compiles and links
in about 30 seconds.

I second Sean Hoffman for Borland giving you a free BDS 2006.

Hans.

Andreas Hausladen

unread,
Dec 7, 2005, 10:15:44 AM12/7/05
to
Hans Galema wrote:

> You mean checking for the corresponding .0 file for a .cpp file for
> instance ?

No it's the search for header files in all include directories.

> I could install the .bpl in BCB5.
> I did see nothing happen. And I could not imagine that installing
> a .bpl could influence the compiler. I still don't understand.

The package uses the "initialization" section to re-initialize the
compiler's callback functions.


> I second Sean Hoffman for Borland giving you a free BDS 2006.

I have already ordered it.


--
Regards,

Andreas Hausladen

Carmelo Viavattene

unread,
Dec 7, 2005, 10:11:41 AM12/7/05
to
Andreas Hausladen ha scritto:

> Carmelo Viavattene wrote:
>
>
>>I can test with my BCB5, Ok?
>
>
> The worst case would be one or more access violations.
>
>
Ok, and to have bcc32pch plugin, and mtbcc32 ?
I do not know like finding these two files.
Can You send me attached to an e-mail?
Or it makes to know me where to find them on the web.

Thanks

Hans Galema

unread,
Dec 7, 2005, 10:29:43 AM12/7/05
to
Andreas Hausladen wrote:

>>I second Sean Hoffman for Borland giving you a free BDS 2006.
>
> I have already ordered it.

That should not matter. That makes sure such a gift will be
gladly accepted.

Hans.

Carmelo Viavattene

unread,
Dec 7, 2005, 10:41:02 AM12/7/05
to
Andreas Hausladen ha scritto:

> Carmelo Viavattene wrote:
>
>
>>I can test with my BCB5, Ok?
>
>
> The worst case would be one or more access violations.
>
>
I found:
1) bcc32pch at page: http://andy.jgknet.de/cpp/
2) mtbcc32 at page: http://jomitech.com/
Is OK?

Then, You think:
1) bcc32pch Plugin, and mtbcc32 is faster of Your IDECompilerSpeedFix?
2) bcc32pch Plugin, mtbcc32, and bcc32ide is faster of Your
IDECompilerSpeedFix?

Thanks

Gianluca Angelici

unread,
Dec 7, 2005, 10:42:12 AM12/7/05
to
Please don't leave ProjectMaker...... :(

"Oliver Rutsch" <oru...@sympatec.com> ha scritto nel messaggio
news:4396ddec$1...@newsgroups.borland.com...

Andreas Hausladen

unread,
Dec 7, 2005, 10:51:35 AM12/7/05
to
Carmelo Viavattene wrote:

> 1) bcc32pch at page: http://andy.jgknet.de/cpp/
> 2) mtbcc32 at page: http://jomitech.com/
> Is OK?

Yes, except that bcc32pch in the release version 2.0 is less speedy than
the new upcomming version which only needs finetuning and testing.

> Then, You think:
> 1) bcc32pch Plugin, and mtbcc32 is faster of Your IDECompilerSpeedFix?
> 2) bcc32pch Plugin, mtbcc32, and bcc32ide is faster of Your
> IDECompilerSpeedFix?

The new bcc32pch Plugin uses bcc32ide.exe. And saying that the combination
is faster than IDECompileSpeedFix is not the way I would say it. The
IDECompilerSpeedFix is included in the new bcc32pch Plugin (oh wonder!).
And all three tools target different things.

bcc32pch Plugin's main purpose is to make usage of precompiled header
optimal. But it also includes the IDECompilerSpeedFix.
mtbcc32 targets multiple processor cores. It uses multiple compiler
processes to compile a set of files.

--
Regards,

Andreas Hausladen

Jonathan Benedicto

unread,
Dec 7, 2005, 10:53:04 AM12/7/05
to
Andreas Hausladen wrote:
> Was the coreide40.bpl name correct or have you changed it to something
> like "coride40.bpl" (without the "e") ?

No coreide40.bpl was fine. I had to move the const above the type, and
create a .lib from bccide.dll, but other than that it worked fine.

Jonathan


Oliver Rutsch

unread,
Dec 7, 2005, 10:52:13 AM12/7/05
to
Hi Gianluca,

> Please don't leave ProjectMaker...... :(
>

No, i don't. Because it compiles our 50 projects without throwing an AV
after the second project ;-)

Look at my new post in these group there's a little new feature in the
ProjectMaker.

Bye, Oliver

Carmelo Viavattene

unread,
Dec 7, 2005, 10:57:54 AM12/7/05
to
Andreas Hausladen ha scritto:
Ok, good work.
I live in Italy, and my time is 17.00. Your time?

When You think new version 2.5 is ready?

Thanks

Jonathan Benedicto

unread,
Dec 7, 2005, 10:57:37 AM12/7/05
to
Andreas Hausladen wrote:
> Was the coreide40.bpl name correct or have you changed it to something
> like "coride40.bpl" (without the "e") ?

Sorry, on a subsequent look, it is coride40.bpl

Jonathan


Jonathan Benedicto

unread,
Dec 7, 2005, 11:02:18 AM12/7/05
to
Andreas Hausladen wrote:
> Because you used C++ Builder for compilation? For Delphi I do not
> need any .lib file.

Yes.

Jonathan


Andreas Hausladen

unread,
Dec 7, 2005, 11:05:58 AM12/7/05
to
Carmelo Viavattene wrote:

> I live in Italy, and my time is 17.00. Your time?

Same.

> When You think new version 2.5 is ready?

Depends on the bugs I find. At the moment I'm improving the .obj
dependency check to include the command line option changes. Otherwise the
files will not be compiled if you change e.g. a -Dmydefine parameter.


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 11:00:37 AM12/7/05
to
Jonathan Benedicto wrote:

> No coreide40.bpl was fine.

Then Borland had switched from coreide40 to coride50 to codeide60.


> and create a .lib from bccide.dll, but other than that it worked fine.

Because you used C++ Builder for compilation? For Delphi I do not need any
.lib file.


--
Regards,

Andreas Hausladen

Jonathan Benedicto

unread,
Dec 7, 2005, 11:12:26 AM12/7/05
to
Andreas Hausladen wrote:
> Then Borland had switched from coreide40 to coride50 to codeide60.

I hadn't closed BCB yet, and I just found that it crashed, so I checked and
it is coride40.bpl.

Jonathan


Alex Bakaev [TeamB]

unread,
Dec 7, 2005, 11:43:22 AM12/7/05
to
Sean Hoffman wrote:
> This is a very significant fix. If this had been available sooner, just
> think, people might have actually *used* code insight. Borland, I have
> two requests:
>

Sean, I have 2 requests:
1. Quote properly
2. Bottom-post <g>

.a

Alex Bakaev [TeamB]

unread,
Dec 7, 2005, 11:41:24 AM12/7/05
to
Andreas Hausladen wrote:
> Alex Bakaev [TeamB] wrote:
>
>
>>I had to modify the source to use different name for the coreide and
>>create an import library for bccide.dll.
>
>
> What is the name of coreide.bpl ? Is it coreide100.bpl ?
>
>

Yes. But now I'm not so certain it's working <g>.

This returns null pointer:
Proc := GetProcAddress(GetModuleHandle(coreide_bpl),
'@Cominout@CPPCompilerInit$qqrpqqsr22Cominout@TCppCallbacks$v');


.a

Alex Bakaev [TeamB]

unread,
Dec 7, 2005, 11:42:20 AM12/7/05
to
Sabetay Toros wrote:

[snip]

Please, mind your quotes!

Thanks,
.a

Alex Bakaev [TeamB]

unread,
Dec 7, 2005, 12:10:29 PM12/7/05
to
Alex Bakaev [TeamB] wrote:

>
> Yes. But now I'm not so certain it's working <g>.
>
> This returns null pointer:
> Proc := GetProcAddress(GetModuleHandle(coreide_bpl),
> '@Cominout@CPPCompilerInit$qqrpqqsr22Cominout@TCppCallbacks$v');
>

But what this bad news means is that the good news is that BDS's CI
works very well out of the gates!

.a

Andreas Hausladen

unread,
Dec 7, 2005, 12:28:59 PM12/7/05
to
Alex Bakaev [TeamB] wrote:

> But what this bad news means is that the good news is that BDS's CI
> works very well out of the gates!

BDS 3.0 does not have the equal function for DCC60. So the machanism is a
different. But as long as I do not have my copy of Delphi 2006 I can't
test or fix it if it exists.


--
Regards,

Andreas Hausladen

Alex Bakaev [TeamB]

unread,
Dec 7, 2005, 12:31:45 PM12/7/05
to

Andreas, I understand that you can't do anything with BDS 2006 yet :)

What I'm seeing is the GetProcAddress failing.

CI is very fast for BCB in BDS 2006 as is. I don't know if Borland fixed
the issue you found. If they didn't then CI will be so fast it's crazy :)

.a

Olivier Bertini

unread,
Dec 7, 2005, 1:26:18 PM12/7/05
to
Wonderful !!!

And it even fixed the bug when BCB rebuild the whole project when you
just change the version number in the project's options.

Using BCB6 pro.

Thanks a lot,
Olivier

Andreas Hausladen

unread,
Dec 7, 2005, 1:29:30 PM12/7/05
to
Olivier Bertini wrote:

> And it even fixed the bug when BCB rebuild the whole project when you
> just change the version number in the project's options.

Are you sure? The package only replaces the FileOpen callback. Nothing
more, nothing less.


--
Regards,

Andreas Hausladen

Eike Petersen

unread,
Dec 7, 2005, 1:40:53 PM12/7/05
to
Hi Andreas,

I have been using BCC32PCH for some time now and tried this one. For one of my
bigger DLLs it reduced compile time from 1:40minutes to 40seconds. Still
BCC32PCH is a little bit faster (about ~35s).

Great work! What took you so long? :)

You deserve a medal for this... or at least a free BCB2006 copy!

Regards
Eike Petersen

Olivier Bertini

unread,
Dec 7, 2005, 1:54:22 PM12/7/05
to
Andreas Hausladen a écrit :

> Are you sure? The package only replaces the FileOpen callback. Nothing
> more, nothing less.

In fact this bug is fixed with the bccpch & IDE plugin. But I didn't
noticed it before.

Anyway, compilation is now faster and this is great.

Cheers,
Olivier

Andreas Hausladen

unread,
Dec 7, 2005, 2:16:47 PM12/7/05
to
I have implemented hash tables for the FileOpen and FileAge callbacks and
that improved the speed again.

qmake.exe:
- Without hash tables: 17 secs
- With hash tables: 12 secs

Let's see where these 12 secs are spend for. My target is to reduce it to
0 seconds :-)


--
Regards,

Andreas Hausladen

Jonathan Benedicto

unread,
Dec 7, 2005, 2:21:21 PM12/7/05
to
Andreas Hausladen wrote:
> I have implemented hash tables for the FileOpen and FileAge callbacks
> and that improved the speed again.

What do you mean by hash tables ?

Jonathan


Relaxin

unread,
Dec 7, 2005, 2:21:32 PM12/7/05
to
How do you get your compiler improvements to work in BCB 4, as it stand
currently it does compile?

Thanks


Roddy Pratt

unread,
Dec 7, 2005, 2:33:37 PM12/7/05
to

"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
news:439734af$1...@newsgroups.borland.com...

>I have implemented hash tables for the FileOpen and FileAge callbacks and
> that improved the speed again.
>
> Let's see where these 12 secs are spend for. My target is to reduce it to
> 0 seconds :-)

Is that 12 seconds spend within the IDE callbacks, or 12 seconds total
compile time for your project...?

I see the TComInOut acts as a filesystem shim, so maybe it's lots of
single-byte reads without proper buffering?

-Roddy

Alan Bellingham

unread,
Dec 7, 2005, 2:34:46 PM12/7/05
to
"Jonathan Benedicto" <inco...@no.server> wrote:

Look in Google if you don't know what a hash table is. Suffice to say, a
hash table is an unordered lookup table that is extremely fast when
correctly optimised. Faster than a tree (as used in std::map).

Alan Bellingham
--
Team Thai Kingdom
<url:http://www.borland.com/newsgroups/> Borland newsgroup descriptions
<url:http://www.borland.com/newsgroups/netiquette.html> netiquette

Jonathan Benedicto

unread,
Dec 7, 2005, 2:36:01 PM12/7/05
to
Alan Bellingham wrote:
> Look in Google if you don't know what a hash table is. Suffice to
> say, a hash table is an unordered lookup table that is extremely fast
> when correctly optimised. Faster than a tree (as used in std::map).

Thank you for that info. Sorry I didn't look there first.

Jonathan


Andreas Hausladen

unread,
Dec 7, 2005, 3:03:58 PM12/7/05
to
Roddy Pratt wrote:

> Is that 12 seconds spend within the IDE callbacks, or 12 seconds total
> compile time for your project...?

Total compile time. Otherwise the smilie would be misplaced.


> I see the TComInOut acts as a filesystem shim, so maybe it's lots of
> single-byte reads without proper buffering?

The compiler requests 15872 Byte blocks.

--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 3:29:39 PM12/7/05
to
Carmelo Viavattene wrote:

> it is disappeared the file bcc32ide.

Because it was never thought to "leak" until it is rock solid. For example
the version on the server had not recompiled the PCH file if you modifiy
the command line parameters like changing -Ddefines.


> Then, this evening we will have the release of bcc32pch version 2.5?

The question is: When is evening. Every time zone has it's "evening" :-)


--
Regards,

Andreas Hausladen

Andreas Hausladen

unread,
Dec 7, 2005, 3:27:01 PM12/7/05
to
Rodrigo Gómez wrote:

> Thank you Andreas for the fix!!!
>
> Here are the times to build a project of about 1,000,000 compiled lines:
>
> IDE, no patch: 88.59
> IDE, patched: 46.77
> ProjectMaker and mtbcc32: 37 sec
> ProjectMaker and default bcc32: 29 sec (this sounds strange, but maybe
> something is odd with my computer, because usually mtbcc32 seems to take
> more than with the default compiler...)
>
> Also, note that this include the linking time, wich for some reason is a
> lot! Maybe 20 secs or so.
>
> So, basically, it went to less than half the time with the patch!
> Thanks! I haven't tryed CodeInsight, but will try right now...

Wait for the next release of the IDE Speed Improvement Fix package. It
will speed up again. I'm currently trying more optimization techniques. At
the moment add the ability to cache small files in memory. But I don't
know if that will bring anything until I have tested it.

--
Regards,

Andreas Hausladen

Carmelo Viavattene

unread,
Dec 7, 2005, 3:26:21 PM12/7/05
to
Andreas Hausladen ha scritto:

> I have implemented hash tables for the FileOpen and FileAge callbacks and
> that improved the speed again.
>
> qmake.exe:
> - Without hash tables: 17 secs
> - With hash tables: 12 secs
>
> Let's see where these 12 secs are spend for. My target is to reduce it to
> 0 seconds :-)
>
>

In your page http://unvclx.sourceforge.net/downloads/


it is disappeared the file bcc32ide.

Then, this evening we will have the release of bcc32pch version 2.5?

Thanks

Rodrigo Gómez

unread,
Dec 7, 2005, 3:21:32 PM12/7/05
to
Thank you Andreas for the fix!!!

Here are the times to build a project of about 1,000,000 compiled lines:

IDE, no patch: 88.59
IDE, patched: 46.77
ProjectMaker and mtbcc32: 37 sec
ProjectMaker and default bcc32: 29 sec (this sounds strange, but maybe
something is odd with my computer, because usually mtbcc32 seems to take
more than with the default compiler...)

Also, note that this include the linking time, wich for some reason is a
lot! Maybe 20 secs or so.

So, basically, it went to less than half the time with the patch! Thanks! I
haven't tryed CodeInsight, but will try right now...

I have a P4 @ 2.8 with HT enabled, 1gb of ram, and SATA HD.

--
Rodrigo Gómez
www.rodrigogomez.com.mx/gallery/


Andreas Hausladen

unread,
Dec 7, 2005, 3:35:32 PM12/7/05
to
Relaxin wrote:

> How do you get your compiler improvements to work in BCB 4, as it stand
> currently it does compile?

I cannot test it myself. So I guess: Copy the IDECompilerSpeedFix50.*
files to IDECompilerSpeedFix40.*, open IDECompilerSpeedFix40.dpk and
change the first line to "unit IDECompilerSpeedFix40;" and in the
requires-section the "vcl50" to "vcl40".
Then open a console, make dcc32.exe available (set PATH=C:\BCB6\Bin) and
start

dcc32 IDECompilerSpeedFix40.dpk

--
Regards,

Andreas Hausladen

Jonathan Benedicto

unread,
Dec 7, 2005, 3:38:58 PM12/7/05
to
Andreas Hausladen wrote:
> I cannot test it myself. So I guess: Copy the IDECompilerSpeedFix50.*
> files to IDECompilerSpeedFix40.*, open IDECompilerSpeedFix40.dpk and
> change the first line to "unit IDECompilerSpeedFix40;" and in the
> requires-section the "vcl50" to "vcl40".

Does it by default use coride40.bpl ?

Jonathan


Tamas Demjen

unread,
Dec 7, 2005, 3:38:45 PM12/7/05
to
Olivier Bertini wrote:

> And it even fixed the bug when BCB rebuild the whole project when you
> just change the version number in the project's options.

For me it didn't. But after downloading and installing the .bpl, it
really improved the compilation speed. With the first project I tried it
with, it went down from 147 seconds to 38 seconds, which is
unbelievable. For years and years thousands of us were using this slow
IDE when the compiler had the potential of this incredible speed. Good
job, Andreas, you did the impossible. I knew something weird was behind
this, but I never imagined it could be fixed without having access to
the source code of C++Builder.

Tom

Thomas Maeder [TeamB]

unread,
Dec 7, 2005, 3:48:03 PM12/7/05
to
"Rodrigo Gómez" <rgo...@trafficsystem.com.mx> writes:

> Here are the times to build a project of about 1,000,000 compiled lines:
>
> IDE, no patch: 88.59
> IDE, patched: 46.77
> ProjectMaker and mtbcc32: 37 sec
> ProjectMaker and default bcc32: 29 sec (this sounds strange, but maybe
> something is odd with my computer, because usually mtbcc32 seems to take
> more than with the default compiler...)
>
> Also, note that this include the linking time, wich for some reason is a
> lot! Maybe 20 secs or so.
>
> So, basically, it went to less than half the time with the patch! Thanks! I
> haven't tryed CodeInsight, but will try right now...

The effect is already showing:

http://finfox.nzz.ch/s/markets_quotedetail.xhtml?symbol=NESN.VTX

-3.25% in one day for one of the largest coffee producers.

Andreas Hausladen

unread,
Dec 7, 2005, 3:49:10 PM12/7/05
to
Jonathan Benedicto wrote:

If he downloaded after 17:00 it uses the "coride40.bpl"


--
Regards,

Andreas Hausladen

Rodrigo Gómez

unread,
Dec 7, 2005, 3:55:46 PM12/7/05
to
> -3.25% in one day for one of the largest coffee producers.

LOL!

--
Rodrigo Gómez
www.rodrigogomez.com.mx/gallery/


Jonathan Benedicto

unread,
Dec 7, 2005, 3:51:17 PM12/7/05
to
Andreas Hausladen wrote:
> If he downloaded after 17:00 it uses the "coride40.bpl"

Thank you.

Jonathan


Roddy Pratt

unread,
Dec 7, 2005, 4:01:31 PM12/7/05
to
>> IDE, no patch: 88.59
>> IDE, patched: 46.77

Some figures for my (relatively small) project:-

unpatched IDE: 47 seconds
patched IDE: 14 seconds

Any faster, and I won't get the coffee cup to my lips between compiles.

I'm guessing that it's the preprocessor spending all the time trying to
locate header files in the '#include' search paths...? If so, you might be
interested in the following link about how gnu cpp handles these...
http://tinyurl.com/dtsa5

Difficult to know how much of that could be implemented within the callback,
but...

- Roddy


Rodrigo Gómez

unread,
Dec 7, 2005, 4:18:42 PM12/7/05
to
I have more "stats" to give, pretty amazing at the end:

Project group with 18 projects (maybe 15 or so million lines compiled)

IDE (Build All): 9:51.92
ProjectMaker (bcc32): 9:14.00
ProjectMaker (mtbcc32): 10:10.00

Overall I would say it's pretty pretty good!

CodeInsight is still a little bit too much clumsy for my taste, but I guess
it's only a matter of getting used to it. From time to time I need to open
the help to see some stuff that CI will show faster than that, so I guess
I'll leave it enabled.

Thanks again! Let us wait for your next update to see what improvements you
have :-)

--
Rodrigo Gómez
www.rodrigogomez.com.mx/gallery/


Jonathan Benedicto

unread,
Dec 7, 2005, 4:25:21 PM12/7/05
to
Rodrigo Gómez wrote:
> IDE (Build All): 9:51.92
> ProjectMaker (bcc32): 9:14.00
> ProjectMaker (mtbcc32): 10:10.00

This slow mtbcc32 performance is crazy. I know HT's can use mtbcc32 fine.
What settings do you use it on ?

Jonathan


Rodrigo Gómez

unread,
Dec 7, 2005, 4:30:55 PM12/7/05
to
Hi Jonathan,

> This slow mtbcc32 performance is crazy. I know HT's can use mtbcc32 fine.
> What settings do you use it on ?

I have default settings, no ini files, no extra parameters, no nothing. It
indeed sounds strange. I belive something maybe to do with the HDD not being
able to handle the two threads correctly? For all the mentioned projects, I
end up with 1,317 mb of CSM files in my obj directory, so maybe it's too
heavy for my poor SATA disk?

I have BCB installed in a separate hard drive from the one where I have all
the code, but both disks are SATA.

Next week, hopefully, I'll get a new machine with a Pentium D chip, so we
can see if the HT has something to do with this...

--
Rodrigo Gómez
www.rodrigogomez.com.mx/gallery/


Jonathan Benedicto

unread,
Dec 7, 2005, 4:34:25 PM12/7/05
to
Rodrigo Gómez wrote:
> I have default settings, no ini files, no extra parameters, no
> nothing. It indeed sounds strange. I belive something maybe to do
> with the HDD not being able to handle the two threads correctly? For
> all the mentioned projects, I end up with 1,317 mb of CSM files in my
> obj directory, so maybe it's too heavy for my poor SATA disk?

Might be your HDD.

> I have BCB installed in a separate hard drive from the one where I
> have all the code, but both disks are SATA.
>
> Next week, hopefully, I'll get a new machine with a Pentium D chip,
> so we can see if the HT has something to do with this...

I really don't think it is the HT, though I know that a D should give you
much better speed.

Jonathan


Roddy Pratt

unread,
Dec 7, 2005, 5:01:46 PM12/7/05
to

"Roddy Pratt" <roddy at spam fritter dot com> wrote in message
news:4397...@newsgroups.borland.com...

>>> IDE, no patch: 88.59
>>> IDE, patched: 46.77
>
> Some figures for my (relatively small) project:-
>
> unpatched IDE: 47 seconds
> patched IDE: 14 seconds
>
... and IDE with background compilation enabled, over 120 seconds. Any
chance there's a miracle cure for that one too?

Amazingly, BG compilation is on by default. (in BCB5, anyway)

- Roddy


Alan Bellingham

unread,
Dec 7, 2005, 6:45:13 PM12/7/05
to
"Jonathan Benedicto" <inco...@no.server> wrote:

>Thank you for that info. Sorry I didn't look there first.

You weren't to know that it's a common Computer Science thing. But I was
trying to write a full briefing on the damned things as a reply, and
realised that you were best advised this time to go Google. Java tends
to use them more than C++ does - the SCL is missing a good hash
implementation.

Andreas Hausladen

unread,
Dec 7, 2005, 7:31:06 PM12/7/05
to
I have uploaded the new version with hashing.
http://andy.jgknet.de/cpp

Also the IDE Console Compiler is now finished and can be used as
replacement for bcc32.exe.


--
Regards,

Andreas Hausladen

Michael Gillen

unread,
Dec 7, 2005, 7:05:48 PM12/7/05
to
Andreas Hausladen wrote:

> Wait for the next release of the IDE Speed Improvement Fix package. It
> will speed up again. I'm currently trying more optimization techniques. At
> the moment add the ability to cache small files in memory. But I don't
> know if that will bring anything until I have tested it.

This is like when I used Delphi - back in the D2 days. I tested it on a few small programs and the
speed difference varied from 4x to 9x faster!!! WOW!!!

--
-Michael Gillen

Carmelo Viavattene

unread,
Dec 8, 2005, 4:00:38 AM12/8/05
to
Andreas Hausladen ha scritto:

> I have uploaded the new version with hashing.
> http://andy.jgknet.de/cpp
>
> Also the IDE Console Compiler is now finished and can be used as
> replacement for bcc32.exe.
>
>
bcc32pch not work in BCB5:

Project->Build (aka Shift+F9), do nothing
Project->Make (aka Ctrl+F9), do an error:
Access violation at address 0619898D in module 'bcc32pchPlugin50.bpl'.
Read of adress 00000000.

Then,
File->Close All
uncheck Bcc32Pch Plugin in Component->Install Packages

File->Reopen MyProject, others errors:
uncheck Bcc32Pch Plugin in Component->Install Packages
Access violation at address 0A62E0A0. Read of address 0A62E0A0.
Error in creating form: Access violation at address 0A62E0A0.
Read of address 0A62E0A0.

File->Close All
The only way is close BCB, File->Close All, Component->Install Package,
remove Bcc32Pch Plugin.

In my BCB, the IDECompilerSpeedFix 1.1 work OK.

1) Can You solve the problem of Bcc32Pch Plugin for BCB5 users?
2) Do You want I compile your files in my BCB?

Thanks

Carmelo Viavattene

Roddy Pratt

unread,
Dec 8, 2005, 4:07:24 AM12/8/05
to
"Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
news:43977e5a$1...@newsgroups.borland.com...

>I have uploaded the new version with hashing.
> http://andy.jgknet.de/cpp

One minor optimization that might help : use your "missingheaders" hash to
store file attribs of found files as well as missing ones. Then, when a file
is opened for the second time (which I assume it will be), you can avoid the
FileAttributes call. The hash table will get bigger, but probably not by
much.

Also - just a thought - if you can detect the second time a file is opened,
maybe you can automagically handle "include guards" to prevent multiple
header inclusion? That could give a huge speedup, because even with include
guards ,the entire file goes through CPP again searching for the #endif.

- Roddy


Harald Plontke

unread,
Dec 8, 2005, 4:35:45 AM12/8/05
to
Hello,

I installed the new Version, but I get:

bcc32ide.exe - DLL not found
The dynamic link library bccide was not found in Patch
C:\PPROGRA~1\Borland\CBUILD~1\BIN;C:\WINDOWS\system32;...
C:\Programme\Borland\CBUILDER6\Bin...

Greetings,

Harald


Alan Bellingham

unread,
Dec 8, 2005, 4:40:14 AM12/8/05
to
"Roddy Pratt" <ro...@rascular.spamspamspam.com> wrote:

>One minor optimization that might help : use your "missingheaders" hash to
>store file attribs of found files as well as missing ones. Then, when a file
>is opened for the second time (which I assume it will be), you can avoid the
>FileAttributes call. The hash table will get bigger, but probably not by
>much.

But if that file is the output of a process ... the attributes will have
changed.

What happens when the file appears which wasn't previously there?

>Also - just a thought - if you can detect the second time a file is opened,
>maybe you can automagically handle "include guards" to prevent multiple
>header inclusion? That could give a huge speedup, because even with include
>guards ,the entire file goes through CPP again searching for the #endif.

The time taken to read a file the first time is vastly more than the
time it takes to read the second time. The second time around, it is
usually in cache. The time taken to scan for a matching #endif is
probably well sub millisecond.

And anyway, sometimes that include file is meant to be reopened and
really reread. Look at the packing include files. No, it's better for
the compiler to notice that an include file has include guards and for
it not to reread it if it knows that nothing exists outside the guards.

Roddy Pratt

unread,
Dec 8, 2005, 4:41:54 AM12/8/05
to

"Roddy Pratt" <ro...@rascular.spamspamspam.com> wrote in message
news:4397...@newsgroups.borland.com...

> "Andreas Hausladen" <AndreasDO...@gNOMAILmx.de> wrote in message
> news:43977e5a$1...@newsgroups.borland.com...
>>I have uploaded the new version with hashing.
>> http://andy.jgknet.de/cpp
>
> Also - just a thought - if you can detect the second time a file is
> opened, maybe you can automagically handle "include guards" to prevent
> multiple header inclusion? That could give a huge speedup, because even
> with include guards ,the entire file goes through CPP again searching for
> the #endif.
>

Of course, precompiled headers are your friend here already... doh.

- roddy


Andrue Cope [TeamB]

unread,
Dec 8, 2005, 4:46:21 AM12/8/05
to
Jonathan Benedicto wrote:

> > Until I have completed the next version of my bcc32pch tool, you can
> > download a very small package that fixes this bug.
>
> I downloaded it, created a new package, and built it, as I have BCB4,
> and WOW!!!, the code insight is almost instant.

We've known for a while that BCB called OpenFile a lot more than seemed
logical. I installed the BCB6 package and our main runtime library went
from 97 seconds compilation to 31. Sweet :)

--
Andrue Cope [TeamB]
[Bicester, Uk]
http://info.borland.com/newsgroups/guide.html

Andrue Cope [TeamB]

unread,
Dec 8, 2005, 4:50:24 AM12/8/05
to
Andreas Hausladen wrote:

> > You mean checking for the corresponding .0 file for a .cpp file for
> > instance ?
>
> No it's the search for header files in all include directories.

No wonder we got such a boost then. We have always grouped code by
module and even submodule into different directories. Our main run time
library has 105 directories and probably includes another dozen at
least.

It is loading more messages.
0 new messages