[FFmpeg-devel] [RFC] New build system
Michael Niedermayer
michael at niedermayer.cc
Mon Jun 18 21:18:50 EEST 2018
On Mon, Jun 18, 2018 at 06:52:18PM +0200, Nicolas George wrote:
> Tomas Härdin (2018-06-18):
> > Others have mentioned this already, but it bears repeating: the build
> > (make) isn't what's so slow, configure is. I went ahead and did some
> > profiling on it based on the StackOverflow thread that pops up when one
> > Web-searches "bash profiling" [1]. I went with what the second guy in
> > there says, because the first method eventually invokes the OOM killer.
>
> Before that, I suspect it would have been interesting to test a
> configure from two years ago, and bissecting if it happens to be much
> faster.
The speed of configure declined very significantly over time, here are some
quick tests, not full bisects:
but theres another point which i have not seen anyone make but maybe i missed
it.
If changes which decrease speed go in unhindered and without correction then no
system, not a custom one, no meson no autotools, no cmake is guranteed to
prevent such speed decline.
Of course some of the decline will be due to added features and the added tests
they need.
also the speed seems worse with bash so anyone wanting a quick fix, do not use
bash for configure.
(note /bin/sh is dash here on my ubuntu box, and that is used by default i think)
master:
bash ./configure ; time bash ./configure
real 0m56.345s
user 0m43.532s
sys 0m15.668s
./configure ; time ./configure
real 0m15.788s
user 0m8.469s
sys 0m9.677s
dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf ; time dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf
real 0m13.982s
user 0m7.591s
sys 0m8.693s
release/4.0:
bash ./configure ; time bash ./configure
real 0m56.337s
user 0m43.207s
sys 0m15.988s
./configure ; time ./configure
real 0m15.704s
user 0m8.352s
sys 0m9.713s
dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf ; time dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf
real 0m13.966s
user 0m7.414s
sys 0m8.877s
release/3.4:
bash ./configure ; time bash ./configure
real 0m21.324s
user 0m18.041s
sys 0m3.693s
./configure ; time ./configure
real 0m6.756s
user 0m4.158s
sys 0m2.822s
dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf ; time dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf
real 0m4.849s
user 0m2.887s
sys 0m2.148s
release/3.0:
bash ./configure ; time bash ./configure
real 0m16.955s
user 0m13.770s
sys 0m3.485s
./configure ; time ./configure
real 0m6.006s
user 0m3.616s
sys 0m2.602s
dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf ; time dash ./configure --cc='ccache gcc' --tempprefix=/home/michael/fftmpconf
real 0m4.269s
user 0m2.401s
sys 0m2.034s
release/2.0:
bash ./configure ; time bash ./configure
real 0m11.050s
user 0m8.855s
sys 0m2.465s
./configure ; time ./configure
real 0m4.443s
user 0m2.622s
sys 0m1.983s
release/1.0:
bash ./configure ; time bash ./configure
real 0m14.104s
user 0m10.045s
sys 0m4.852s
./configure ; time ./configure
real 0m4.712s
user 0m2.250s
sys 0m2.761s
release/0.7:
bash ./configure ; time bash ./configure
real 0m9.441s
user 0m6.607s
sys 0m3.363s
./configure ; time ./configure
real 0m3.346s
user 0m1.583s
sys 0m1.960s
release/0.6:
bash ./configure ; time bash ./configure
real 0m5.679s
user 0m3.431s
sys 0m2.674s
./configure ; time ./configure
real 0m2.670s
user 0m1.276s
sys 0m1.556s
release/0.5:
bash ./configure ; time bash ./configure
real 0m5.107s
user 0m3.310s
sys 0m2.076s
./configure ; time ./configure
real 0m1.949s
user 0m0.893s
sys 0m1.190s
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Breaking DRM is a little like attempting to break through a door even
though the window is wide open and the only thing in the house is a bunch
of things you dont want and which you would get tomorrow for free anyway
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180618/c87ba0ed/attachment.sig>
More information about the ffmpeg-devel
mailing list