In continuation of the previous message.
If the compilation of *.py files is indeed important, then copying the *.py files into dist and issuing
python -m compileall ./dist.x86_64-pc-linux-gnu
is going to be orders of magnitudes faster (a single process that compiles all the files vs creating a new process per *.py file). This is going to be even faster if only a bunch of *.py files need to be compiled.
Just for comparison on my laptop (using Python 3):
- I need ~5 secs to run make on lib/python
- I need ~8 secs to run make on gui/wxpython
- while I only need ~1 sec to compile all the *.py files using compileall:
$ find ./dist.x86_64-pc-linux-gnu -name ‘*.pyc’ -delete
$ python -m compileall ./dist.x86_64-pc-linux-gnu
[…]
python -m compileall ./dist.x86_64-pc-linux-gnu 1.10s user 0.11s system 99% cpu 1.214 total
Re-running compileall is nearly instantaneous:
python -mcompileall ./ 0.07s user 0.03s system 99% cpu 0.101 total
So, unless someone can clarify why the compilation step is necessary, I would suggest removing it.
If it is indeed needed, then I would suggest modifying the Makefile rules to use compileall instead of plain compile
with kind regards,
Panos
Hi Panos,
On Thu, Mar 7, 2019 at 12:20 AM Panagiotis Mavrogiorgos
<pmav99@gmail.com> wrote:
In continuation of the previous message.
If the compilation of *.py files is indeed important, then copying the *.py files into dist and issuing
python -m compileall ./dist.x86_64-pc-linux-gnu
is going to be orders of magnitudes faster (a single process that compiles all the files vs creating a new process per *.py file). This is going to be even faster if only a bunch of *.py files need to be compiled.
Just for comparison on my laptop (using Python 3):
- I need ~5 secs to run make on lib/python
- I need ~8 secs to run make on gui/wxpython
- while I only need ~1 sec to compile all the *.py files using compileall:
$ find ./dist.x86_64-pc-linux-gnu -name '*.pyc' -delete
$ python -m compileall ./dist.x86_64-pc-linux-gnu
[...]
python -m compileall ./dist.x86_64-pc-linux-gnu 1.10s user 0.11s system 99% cpu 1.214 total
Re-running compileall is nearly instantaneous:
python -mcompileall ./ 0.07s user 0.03s system 99% cpu 0.101 total
So, unless someone can clarify why the compilation step is necessary, I would suggest removing it.
If it is indeed needed, then I would suggest modifying the Makefile rules to use compileall instead of plain compile
Do you have a patch available for the needed change?
thanks
Markus