From: Alexander Holler (holler_at_ahsoftware.de)
Date: 16. Jun 2002
Hallo,
--On Sonntag, Juni 16, 2002 09:59:01 +0200 Mathias Waack
<mathias_at_atoll-net.de> wrote:
> On Sunday 16 June 2002 02:04, Alexander Holler wrote:
>> und bei C++ wird sehr viel mit templates gearbeitet, wobie ich
>> nicht glaube, das ein precompile da sehr viel bringt.
>
> Doch gerade da. Wie Mark schon sagte, schau Dir mal an, wo ein Programm,
> welches viel Funktionalitaet aus der STL benutzt, seine Compilezeit
> verbraet. Uebrigens koennte der Compiler, da er ja die precomiled Header
> selbst erzeugt, auch mal schauen, welche Instanziierungen benutzt werden
> und die schon mal in den precomiled header einbauen.
Gerade die Instanzierungen werden ja meist nicht durch die Header bestimmt.
Deswegen bin ich ja der Meinung das das precompile nicht viel bringt.
Templates funktionieren vom Prinzip her ja ähnlich wie Makros, d.h. bevor
nicht angeben wird, wofür das Template letztendlich benutzt wird, kann der
Compiler damit nicht besonders viel anfangen. Ohne die entgültige
Instanzierung kann der Compiler ja noch nicht mal ein Syntaxcheck
durchführen.
> Auch inline-Funktionen koennen die Compilezeit beeinflussen, sie muessen
> halt in jedem File welches den entsprechenden Header included neu
> kompiliert werden. Dabei ist das doch offensichtlich unnoetig.
Glaub ich nicht. Der Compiler koennte die inlines evtl. in seine interne
Sprache übersetzen, aber viel mehr auch nicht. Sonst gingen eine ganze
Menge Optimierungen nicht bei Inlines.
> Und letzendlich kann man sich viel Parse-Zeit sparen. OK, Parsen dauert
Das ist ziehmlich das einzige was ich mir vorstellen kann. Aber durch die
Verwendung von Templates geht auch das wiederum nur sehr begrenzt.
Interessant wäre evtl. mal zu prüfen, bei welcher Compiler-Stufe denn die
meiste Zeit verbraten wird. Ich würde da auf die Optimierungen tippen. Und
da hilft auch noch so viel precoompile nicht.
Gruß,
Alexander
Dieses Archiv wurde generiert von hypermail 2.1.2 : 16. Jun 2002 CEST