2009-04-24 8 views
2

Ich benutze die boost.test Bibliothek, um Komponententests für meine Anwendung zu schreiben.Langsame Kompilierung der Boost-basierten Einheitentestsuite

Das Problem ist, wenn eine bestimmte * .cpp-Datei mit Testsuite auf eine bestimmte Größe wächst, wird die Kompilierung dieser Datei extrem langsam.

Ich benutze BOOST_AUTO_TEST_CASE Makro, um Testfälle zu definieren.

Boost-Version ist 1.34.1

Build-env Autotools + gcc 4.3 unter Fedora 9.

ist, werde ich sehr dankbar, wenn jemand aus möglichen Gründe für ein solches Verhalten zeigen wird.

+0

Verwenden Sie die Quelle oder die vordefinierte Bibliothek? – dirkgently

+0

Um welchen Faktor wird es langsamer und wie plötzlich? Ist es "fügen Sie einen weiteren Testfall hinzu, und das Ganze ist 10 mal langsamer", oder eher "zu einem bestimmten Zeitpunkt beginnt die zusätzliche Zeit pro Testfall zu steigen"? –

+0

>> Verwenden Sie die Quelle oder die vordefinierte Bibliothek? Ich verwende Prebuild-Bibliothek. Macht es einen Unterschied? >> Um welchen Faktor wird es langsamer und wie plötzlich? Irgendwann dauert es nur noch 3-5 Minuten statt 5 Sekunden, mehr Testfälle hinzuzufügen ändert die Zeit nicht signifikant. – cppalex

Antwort

1

Sie könnten physischen Speicher ausgehen und das System beginnt den Austausch (Datei/Partition) viel intensiver als normalerweise (Thrashing).

+0

Nun, es verwendet mehr Speicher als üblich. Aber es ist eher Konsequenz als Grund. Die Frage ist, warum verwendet es so viel Speicher? – cppalex

1

Eine Möglichkeit, herauszufinden, was vor sich geht, ist die Verwendung der gcc-Option -Q, um zu sehen, wo der Unterschied zwischen normal und extrem langsam ist.

1

Sie können dieselbe Testsuite auf mehrere Testdateien aufteilen. Dies sollte Ihre Probleme lindern.