Running: gcc Version 4.2.1 (Apple Inc. bauen 5664)Langsam Compile-Zeit mit Boost-+ GCC + vorkompilierte Header
ich mit einem Standard-vorkompilierte Header einen Apfel XCode-Projekt erstellt. Es scheint sehr langsam zu sein, und eine triviale Hauptdatei mit einer Hauptfunktion, die keinen Code enthält, braucht 6 Sekunden zum Kompilieren, nachdem ich auf ein neues SSD-Laufwerk aufgerüstet habe. Ich bin auf einem Laptop, aber ich habe Bedenken, dass ein Upgrade auf eine Workstation mein Problem lindern würde. Wenn ich den vorkompilierten Header abstelle, wird die Hauptdatei in weniger als einer Sekunde kompiliert. Es scheint, dass die Verwendung eines vorkompilierten Headers eine Strafe für alle Dateien darstellt. Durch diese Verzögerung möchte ich vermeiden, dass Code kompiliert und experimentiert wird, der nicht gut ist. Hier ist, was ich in meinem vorkompilierte Header bin auch:
#pragma once
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <fstream>
#include <functional>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <valarray>
#include <vector>
#include <boost/smart_ptr/scoped_ptr.hpp>
#include <boost/smart_ptr/scoped_array.hpp>
#include <boost/smart_ptr/shared_ptr.hpp>
#include <boost/smart_ptr/shared_array.hpp>
#include <boost/smart_ptr/make_shared.hpp>
#include <boost/smart_ptr/weak_ptr.hpp>
#include <boost/smart_ptr/intrusive_ptr.hpp>
#include <boost/regex.hpp>
#include <boost/thread.hpp>
#include <boost/bind/bind.hpp>
#include <boost/bind/apply.hpp>
#include <boost/bind/protect.hpp>
#include <boost/bind/make_adaptable.hpp>
#include <boost/asio.hpp>
//#include <boost/asio/ssl.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/random.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/local_time/local_time.hpp>
#include <boost/date_time/time_zone_base.hpp>
#include <boost/circular_buffer.hpp>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
ich nicht Geist aufgenommen haben, die wirklich die Kompilierung steigen macht.
So nimmt eine "triviale Hauptdatei mit einer Hauptfunktion no enthält keinen Code" viel weniger Zeit zum Kompilieren als ein Projekt mit allen oben aufgeführten Includes? Sollte das nicht erwartet werden? – jedwards
Auch mein Verständnis von vorkompilierten Headern ist, dass sie nur dazu neigen, die Kompilierzeit zu speichern, wenn sie sonst wiederholt kompiliert werden würden, und zwar über 'include's aus mehreren Quellen. Dies ist bei Ihnen nicht der Fall, daher würde ich mir vorstellen, dass Ihre Kompilierzeit bei Verwendung vorkompilierter Header ähnlich wäre wie ohne. Das heißt, Sie würden nicht viel von einem Gewinn realisieren, wenn Sie vorkompilierte Header verwenden. Sie sollten Ihre Includes wirklich auf quellendateispezifische Basis beschränken. – jedwards
Und was bedeutet das: "Diese Verzögerung lässt mich vermeiden, mit Code zu kompilieren und zu experimentieren, der nicht gut ist."? – jedwards