BOOST macht das Erstellen des Projekts langsam??



  • Hallo,

    ich habe den boost::tokenizer meinem Projekt hinzugefügt.
    Jetzt dauert das Erstellen des Projekts ewig.
    Ist das so normal?
    Kann man das beschleunigen? Sind doch nur Header-Files, welche gelesen werden müssen.

    Gruß Lars



  • Lange Kompilierzeiten sind ein generelles Problem bei template-lastigen Bibliotheken. Und Boost besteht fast nur aus Templates.

    Mögliche Lösungsansätze sind Pimpl-Idiom und vorkompilierte Header. Und natürlich nur die Header einbinden, die man wirklich braucht.



  • lamizi schrieb:

    Sind doch nur Header-Files, welche gelesen werden müssen.

    Genau das ist ja das was es langsam macht: der Code in den Headern wird jedes Mal neu kompiliert. Das haben aber Templates so an sich. Es gibt auch Non-Template-Code, da muß man dann die fertig kompilierte LIB angeben.

    Die meisten Compiler haben PCH (Pre Compiled Headers) als Option. Wenn sich die Header-Datei nicht ändert, wird sie nicht neu kompiliert.

    Weiterhin kannst du selber dafür sorgen, das du die Tokenizer-Nutzung in ein Pimple auslagerst. Wenn du deinen Tokenizer-nutzenden Code nicht mehr anfasst, entfällt das inkludieren der Template-Header.



  • Okay! Danke für die Antworten!

    Aber was ist bitte ein Pimple?
    Getraut man sich ja fast nicht in eine Suchmaschine einzugeben! 🙂

    Gruß Lars





  • "d-Zeiger-Idiom"... WTF!?

    Wenn schon, dann Pimpl, Handle-Body oder Compiler-Firewall. Mit diesen Begriffen wird man von C++-Programmierern auch verstanden.



  • Nexus schrieb:

    "d-Zeiger-Idiom"... WTF!?

    Wenn schon, dann Pimpl, Handle-Body oder Compiler-Firewall. Mit diesen Begriffen wird man von C++-Programmierern auch verstanden.

    "Cheshire Cat Idiom" ist noch einigermaßen geläufig. Aber d-Pointer habe ich auch noch nie gehört.



  • "Cheshire Cat" habe ich ehrlich gesagt ebenfalls noch nie gehört. Wikibooks spricht auch noch vom "opaque pointer idiom". Naja, mit Pimpl ist man auf der sicheren Seite 😉



  • Heise schrieb:

    Über das auch als d-Zeiger, Compiler-Firewall und Cheshire Cat bekannte Idiom mit dem lustigen Namen (pimple = engl. für "Pickel")

    Man lernt immer dazu -.-



  • Den heise-Artikel finde ich nicht so gut. Zu viel Bla bla. In "Effektiv C++ Programmieren" von Scott Meyers ist es sehr gut erklärt. Aber das Buch sollte sowieso jeder C++-Programmierer lesen.


Log in to reply