How to reduce compiler time with Boost Asio


Boost.Asio is great library but it has one huge drawback -- extreamly slow compilation times. A simple implementation (really simple) of HTTP protocol (about 1k lines of code) requires about 13.5s to compile under GCC 4.4!

I tryed to use PCH but it does not improve compilation times too much (about 1s. only).

So are there any tutorials on how to make Boost.Asio compilation times faster?

For example what headers should I exactly include for what class.

I use for example: io_service, tcp::ip::sockets, tcp::ip::acceptor, deadline_timer, buffers and few functions like async_read, async_write.

Any suggestions?

P.S.: I do use pimpl whenever I can.

What platform? On Linux, both ccache and distcc are awesome, included in most distributions and a snap to set up, either individually or even combined.