de reproducción: gcc versión 4.2.1 (Apple Inc. construir 5664)lento tiempo de compilación con GCC Boost + + encabezado precompilado
creé un proyecto XCode manzana con un encabezado precompilado por defecto. Parece ser muy lento, y un archivo principal trivial con una función principal no incluye ningún código tarda 6 segundos para compilar, que es después de que actualicé a una nueva unidad SSD. Estoy en una computadora portátil, pero tengo reservas de que la actualización a una estación de trabajo aliviaría mi problema. Si apago el encabezado precompilado, el archivo principal se compila en menos de un segundo. Parece que usar un encabezado precompilado pone una penalización en todos los archivos. Esta demora me hace querer evitar compilar y experimentar con código que no es bueno. Esto es lo que estoy incluyendo en mi encabezado precompilado:
#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>
No he incluido espíritu, lo que realmente hace que el tiempo de compilación subir.
Entonces, ¿un "archivo principal trivial con una función principal sin incluir ningún código" toma mucho menos tiempo en compilarse que un proyecto con todas las opciones enumeradas anteriormente? ¿No debería ser eso esperado? – jedwards
Además, mi comprensión de los encabezados precompilados es que solo tienden a ahorrar tiempo de compilación cuando de lo contrario se compilarían repetidamente, a través de 'include's de múltiples fuentes. Este no es el caso para usted, así que me imagino que su tiempo de compilación con el uso de encabezados precompilados sería similar a sin. Es decir, no obtendrías mucho de una ganancia al usar encabezados precompilados. Realmente debería limitar sus inclusiones a lo que necesita en base a un archivo fuente específico. – jedwards
¿Y qué significa esto: "Esta demora me hace querer evitar compilar y experimentar con código que no es bueno"? – jedwards