[pypy-dev] Translating PyPy on Windows
Maciej Fijalkowski
fijall at gmail.com
Sun Jan 26 13:34:53 CET 2014
On Sun, Jan 26, 2014 at 1:10 PM, Johan Råde <johan.rade at gmail.com> wrote:
> Hi everyone!
>
> When I translated PyPy on Windows,
> on a laptop with an Intel 3210M processor,
> I got the following timings:
>
> annotate --- 464.5 s
> rtype_lltype --- 882.7 s
> pyjitpl_lltype --- 825.9 s
> backendopt_lltype --- 259.2 s
> stackcheckinsertion_lltype --- 309.0 s
> database_c --- 349.6 s
> source_c --- 502.4 s
> compile_c --- 3830.5 s
> ===========================================
> Total: --- 7423.8 s
>
> More than half the time is spent compiling C code.
> The makefile uses neither precompiled headers nor parallel compilation,
> so there is lots of room for improvement.
> I tried these two optimizations,
> and here are the timings for the C code compilation:
>
> baseline: 3830.5 s (as above)
> pc: 1301.2 s
> pch: 404.8 s
> pch + pc: 165.8 s
>
> pc = parallel compilation
> pch = precompiled headers
>
> Using both optimizations you get a factor 23 speed up!
>
> Adding parallel compilation is easy.
>
> Adding precompiled headers is a bit more work;
> here I did a quick fix that is not suitable for production code,
> but good enough for profiling.
>
> I plan to add parallel compilation on Windows,
> along with some other Windows related fixes, to the PyPy code.
> I will not add precompiled headers now.
>
> Armin, Maciej: Does that sound OK?
>
> ----------------------------------------------------------
>
> The main gain when using precompiled headers comes from the header
> forwarddecl.h.
> This header is 17.8 MB and is included in 635 source files.
> The amount of C code that is compiled is about 424 MB.
> But because of forwarddecl.h, you are in fact compiling another 635 x 17.8
> MB = 11 GB.
> Compiling 424 MB or 11 GB of C code - that does make a difference.
>
> But you can not just create a precompiled header that includes forwarddecl.h
> and apply it to all source files.
> You should only apply the precompiled header to files that include
> forwarddecl.h to begin with.
> These seem to be precisely the source files with names that match one of the
> patterns
> data_*.c, nonfuncnodes*.c, implement*.c, pypy_*.c and rpython_*.c.
> But I don't see how to write a nmake rule that only applies to such files.
> (nmake does not have as good pattern matching support as GNU make.)
>
> --Johan
>
>
>
>
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> https://mail.python.org/mailman/listinfo/pypy-dev
Hi Johan
Should this mail come with some attachments?
Cheers,
fijal
More information about the pypy-dev
mailing list