On segunda-feira, 4 de novembro de 2013 17:25:45, Thiago Macieira wrote:
> qmetatype.h:
> > +#include <vector>
> > +#include <list>
> > +#include <map>
> 
> Argh. Thanks for making the compilation that much slower. These three lines 
> probably impact Qt's compilation time in 20%, or more.

With those three lines, src/corelib compiles in:
1:19.084s (total run time 1:19.273s), 333.4% CPU usage
  → 79.273 * 3.334 = 264.296182 CPU seconds

Without them, it was
1:16.792s (total run time 1:16.974s), 341.8% CPU usage
  → 76.792 * 3.418 = 262.475056 CPU seconds

Investigation shows <vector> gets included from <random> (which also includes 
<string>), which is included by <algorithm>, which we include from qglobal.h. 
And we need <algorithm> for something as trivial as std::swap.

$ g++ -E -xc++ -std=c++11 -include algorithm /dev/null | wc -l
40627

For libc++:
$ g++ -E -xc++ -std=c++11 -I. algorithm | wc -l
16012

Stats for 100 compilations of #include <algorithm> from libstdc++:
         39.797359 task-clock                #    0.997 CPUs utilized           
 
       130,078,729 cycles                    #    3.269 GHz                     
 
       0.039922876 seconds time elapsed                                         
 

Same for libc++:
         22.196385 task-clock                #    0.995 CPUs utilized           
 
        71,897,742 cycles                    #    3.239 GHz                     
 
       0.022299146 seconds time elapsed                                         
 

libc++'s build is 79% slower.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to