Toon posts:

[BCB] Compiler en code optimalizeren..?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben momenteel aan het programmeren in Borland C++ Builder 5. Hoewel ik op zich redelijk tevreden ben over deze ontwikkelomgeving, erger ik me wel helemaal kapot aan het feit dat het compilen van mijn project (+/- 20 classes verdeeld over 40 files) een eeuwigheid duurt (5-10 min. is geen uitzondering). Nou weet ik dat je door het gebruik van de VCL-library etc. altijd aan compile- en link-snelheid zult inleveren, maar dit is wel heel extreem.

Ik heb "Optimized for speed" aangevinkt en dat scheelt wel een klein beetje, maar alles bij mekaar is het nog zo traag als dikke stront door een koffiefilter. Nou meen ik me vaag te kunnen herinneren een tijdje geleden ergens iets te hebben gelezen over bep. directives en pre-compiler commando's waarmee je de tijdsduur van het compilen met 7/8ste kunt verminderen, maar ik weet niet meer wat het precies was en ondanks een hele hoop geklooi, lijkt het zooitje er alleen maar langzamer op te zijn geworden.
Het viel mij op dat bij een project in VC++ bestaande uit een stuk of 20 bestanden de code-completion er vrijwel onmiddelijk staat, terwijl ik onder C++ Builder rustig een bak koffie kan gaan halen en een sigaret roken voordat er wat op het beeldscherm verschijnt. Nou gebruik ik die code-completion toch vrijwel niet, maar het geeft wel weer aan dat-ie ogenschijnlijk een heleboel tijd verspilt aan iets overbodigs...?

Als iemand enige tips heeft om mijn leven weer wat kleur te geven :) dan please tell me...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Ik heb "Optimized for speed" aangevinkt en dat scheelt wel een klein beetje
Dat optimaliseerd de uiteindelijke code op snelheid, niet de compilatie. Je kunt het dus juist beter uitzetten (tijdens het ontwikkelen) omdat het extra tijd kost. VC++ heeft een 'link incrementally' optie die het compilen heel wat sneller maakt (hij verwerkt alleen bestanden die gewijzigd zijn sinds de laatste build). Heeft BCB zoiets niet?

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:47
Hmja, het is algemeen bekend dat de compiler van BCB veel trager is dan die van VC++ en dat de code-completion ook een heel stuk trager werkt dan die van VC++.
Misschien heeft dat wel te maken met het feit dat de VCL in Object Pascal geschreven is?

Ik heb nog niet met C++ Builder 6 gewerkt, maar misschien dat die dingen daar al wat in geoptimaliseerd zijn?

BCB heeft wel een incremental linker dacht ik...

Voor de rest is het wel een mooie programmeeromgeving.

https://fgheysels.github.io/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:35

.oisyn

Moderator Devschuur®

Demotivational Speaker

ik heb geen ervaring met BCB, maar kun je je headers precompilen?

dan moet je windows.h eens precompilen, die includet namelijk een enorme berg aan andere headers. En ze moeten bij elke source file weer helemaal geparsed worden

WINDOWS_LEAN_AND_MEAN definieren helpt trouwens ook enorm (veel onzin dingen die je toch nooit gebruikt worden dan ook niet geinclude)
Definieer m voordat je windows.h include:
code:
1
2
#define WINDOWS_LEAN_AND_MEAN
#include <windows.h>

(gewoon predefinen via de command line parameters van je compiler werkt natuurlijk ook :))

wat ook helpt is je headers niet zo uitgebreid maken (dus bijvoorbeeld maar 1 klasse per header), en in je source files alleen die headers includen die je nodig hebt. Als je namelijk een van de headers aanpast, dan moeten alle source files die die header includen (direct of indirect) natuurlijk opnieuw gecompiled worden. En das natuurlijk zonde als die source files verder helemaal niets van sommige geinclude headers nodig hebben

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.