[MPlayer-dev-eng] [RFC] Makefile copyrights
Michael Niedermayer
michaelni at gmx.at
Wed Jun 18 19:52:56 CEST 2008
On Wed, Jun 18, 2008 at 04:27:49PM +0200, Diego Biurrun wrote:
> On Wed, Jun 18, 2008 at 03:44:18PM +0200, Michael Niedermayer wrote:
> > On Wed, Jun 18, 2008 at 02:31:34PM +0200, Diego Biurrun wrote:
> > > On Wed, Jun 18, 2008 at 02:56:37AM +0200, Michael Niedermayer wrote:
> > > > On Wed, Jun 18, 2008 at 01:27:37AM +0200, Diego Biurrun wrote:
> > > > > On Tue, Jun 17, 2008 at 07:39:31PM +0200, Michael Niedermayer wrote:
> > > > > > On Tue, Jun 17, 2008 at 02:57:16PM +0200, Diego Biurrun wrote:
> > > > > > > On Sat, Jun 07, 2008 at 04:11:34PM +0200, Michael Niedermayer wrote:
> > > > > > > >
> > > > > > > > * Its faster to build a .a per directory and then combine them than collect
> > > > > > > > all .o files if one changed. (simple matter of less collecting
> > > > > > ^^^^^^^^^^^^^^
> > > > > > > > recompile one c file collect all .o of one dir collect all .a vs.
> > > > > > > > recompile one c file collect all .o of the whole project)
> > > > > > > > seeks are slow reading lots of files is slower than reading one
> > > > > > > > big one ...
> > > > > > >
> > > > > > > This is not true.
> > > > > > >
> > > > > > > I just did a quick benchmark comparing r26339 with HEAD. I configured
> > > > > > > both trees with the same options and then ran make in them. After that
> > > > > > > I ran 'rm mplayer mencoder' and then 'time make' in both trees in order
> > > > > > > to benchmark just the last linking step. Results vary by 0.1 seconds,
> > > > > > > but both are always around 9.8s.
> > > > > >
> > > > > > Not sure about you, but i do change some c files between running make.
> > > > > > Also not everything might be in the disk cache like it is in your
> > > > > > make; rm mplayer; make
> > > > > > Id be more interrested in the results with a changed c file and a flushed
> > > > ^^^^^^^^^^^^^
> > > > > > cache. (and changed means not a change that has been compiled in the past
> > > > ^^^^^
> > > > > > and is in ccache)
> > > > >
> > > > > Once more, this time with ccache disabled. I do
> > > > >
> > > > > touch libmpdemux/demuxer.c libmpcodecs/vd.c && time make
> > > > >
> > > > > and the results are that HEAD with dependency generation disabled takes
> > > > > 14s, r26339 takes 15.4s. Accept it, link times have decreased.
> > > >
> > > > A normal development cycle is to edit a c file run make
> > > > perform some tests & benchmarks (maybe the regression tests in ffmpeg)
> > > > these will flush the cache if it hasnt been flushed by the time due to
> > > > other things running, then goto 1.
> > > >
> > > > Besides, "HEAD with dependency generation disabled"? so you compare the
> > > > unchanged old build system against the new + some hacks to make it faster?
> > >
> > > I am comparing apples to apples. Your first claim was that link times
> > > would increase with the new system. This is false.
> >
> > I was speaking about the case with a changed file and not everything in the
> > cache. Collecting many small .o files takes longer than few big .a.
> > It may very well be that the old build system did other time consuming things.
> > I was only considering the current build system with per libmp* .a vs the
> > single big linking at the end.
>
> You are wrong. I ran benchmarks for the very case you are describing.
You did not run benchmarks for the actual link commands, ccache disabled,
1 file changed and a fluhed cache.
You run benchmarks on current (+hack) vs. old make. When the hack was removed
old was already faster ...
> "Collecting" big files may well be faster in theory, but in practice it
> is faster to link all the small files directly. The latter is also
> simpler.
>
> What you may be overlooking is that you get extra linking stages in
> between. First you have to link the .a files, then you have to link the
> final binaries.
only 1 c file changes thus only one .a file needs relinking ...
[...]
> > > > * How to use the new shiny build system?
> > > > - comment out the last line in the MPlayer Makefile or the last line
> > > > of common.mak in FFmpeg
> > > >
> > > > Glad, its not as hackish anymore as it was in the past.
> > >
> > > It is working correctly now, which it did most definitely *not* do in
> > > the past. Also, it now automatically generates dependency information.
> > > You know, some people do find this useful and this was a requested
> > > feature. auto* does it as well. If you dislike automatic dependency
> > > information generation, disable it.
> > >
> > > What's your problem? I don't think commenting out one line is asking
> > > too much of you, is it?
> >
> > My problem is that having to comment out lines in a file for normal everyday
> > work is a very hackish solution.
> >
> > make mplayer_nodep or any other command line based solution would be alot
> > cleaner
>
> Now we are talking. Why not start out constructively in the first
> place? I shall look into it.
thanks.
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Complexity theory is the science of finding the exact solution to an
approximation. Benchmarking OTOH is finding an approximation of the exact
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20080618/6ed2158a/attachment.pgp>
More information about the MPlayer-dev-eng
mailing list