View previous topic :: View next topic |
Author |
Message |
McManus Apprentice
Joined: 10 Apr 2002 Posts: 176 Location: Austin, TX
|
Posted: Mon Nov 11, 2002 11:35 pm Post subject: Average Compile Times |
|
|
Out of curiosity, what kind of compile times are you all getting for some of the major packages? (and what kind of system, build flags, etc...)
Here's mine:
1.) boostrap: 82m42s
2.) system: 28m27s
3.) kernel: 9m38s
4.) KDE & X: 380m24s
5.) Gnome: 86m00s
6.) OOo: 318m37s
This was all done with Gentoo 1.4_rc1 on a dual 1900+ MP machine with 1 GB of RAM using the flags: -march=athlon-mp -mmmx -msse -m3dnow -O3 -pipe _________________ McManus
----
Linux user #267375 - http://counter.li.org |
|
Back to top |
|
|
Lovechild Advocate
Joined: 17 May 2002 Posts: 2858 Location: Århus, Denmark
|
Posted: Mon Nov 11, 2002 11:43 pm Post subject: |
|
|
the LFS project does something very clever, they compile bash and then use that as a scale - like this normally takes about 13.5 BashCompileUnits (aka, this takes 13.5 times as long as bash did).
See this is nice and portable. |
|
Back to top |
|
|
pjp Administrator
Joined: 16 Apr 2002 Posts: 20067
|
Posted: Tue Nov 12, 2002 12:05 am Post subject: |
|
|
Chat oriented. Moved from P&P. _________________ Quis separabit? Quo animo? |
|
Back to top |
|
|
McManus Apprentice
Joined: 10 Apr 2002 Posts: 176 Location: Austin, TX
|
Posted: Tue Nov 12, 2002 5:44 am Post subject: |
|
|
Lovechild wrote: | the LFS project does something very clever, they compile bash and then use that as a scale - like this normally takes about 13.5 BashCompileUnits (aka, this takes 13.5 times as long as bash did).
See this is nice and portable. |
Interesting.. I think I will try that then, and compile bash and then I'll report everything as BashCompileUnits as well as static time =)
But really, I would like for everybody to just say how long it took for what package on what system they have, etc... so maybe we can start getting some rough estimates for specific packages (and bootstrapping / system builds)
So I guess include the time it takes for you to compile bash, as well (mine coming soon, when I get a chance... I'm out studying/procrastinating right now)
Also, does anyone know if they are going to (or is it even possible to) implement some sort of progress meter into Portage for compilations? I understand that since all systems vary vastly when it comes to compile times (such as diff. processor speeds, different architectures different flags, different versions of gcc, etc.), but maybe it could show progress by the number of files it has compiled or something? 'cuz the first time I emerged openoffice, I didn't expect for it to take almost 6 hours, and I had no idea of knowing how long it would take to finish So let me know, is this impossible (or impractical) to implement? _________________ McManus
----
Linux user #267375 - http://counter.li.org |
|
Back to top |
|
|
carambola5 Apprentice
Joined: 10 Jul 2002 Posts: 214
|
Posted: Tue Nov 12, 2002 6:11 am Post subject: |
|
|
OK, so this isn't exactly the best way to do it, but here's the general idea....
Before you point out the obvious flaw in this script, let me announce that I am aware of it, but don't quite know how to fix it... yet. Here's the flaw: instead of timing the download/compile time of a program, it can only time the download/compile time of the program plus all unresolved dependencies.
The script first downloads all source for the program as well as deps. It then compiles them.
Code: | #!/bin/sh
if [ -z $1 ]; then
echo "Usage: temerge <portage-package>"
exit 1
fi
DL='root/timings/downloads'
COMP='/root/timings/compiles'
echo "Download for: $1" >> $DL
STARTDL=`date +%s`
emerge -f $1
if [ $? -gt 0 ]; then
echo "Error downloading $1 or one of its deps" >> $DL
date >> $DL
exit 1
fi
ENDDL=`date +%s`
echo "Download took $(($ENDDL - $STARTDL)) seconds." >> $DL
echo Date finished: `date` >> $DL
echo "Compilation for: $1" >> $COMP
STARTCOMP=`date +%s`
emerge $1
if [ $? -gt 0 ]; then
echo "Error compiling $1 or one of its deps" >> $COMP
date >> $COMP
exit 1
fi
ENDCOMP=`date +%s`
echo "Compile took $(($ENDCOMP - $STARTCOMP)) seconds." >> $COMP
echo Date finished: `date` >> $COMP
exit 0
|
Any suggestions on improvement? (In case you missed it, I call the file /root/bin/temerge. Make sure the /root/timings folder is already created.) |
|
Back to top |
|
|
guero61 l33t
Joined: 14 Oct 2002 Posts: 811 Location: Behind you
|
|
Back to top |
|
|
McManus Apprentice
Joined: 10 Apr 2002 Posts: 176 Location: Austin, TX
|
Posted: Tue Nov 12, 2002 8:20 pm Post subject: |
|
|
Er... why not just 'time emerge <packages>'? that's what I did, and I copied down the user time (you get the same effect, too, "bug" and all... time to compile package and all dependencies, which is what I meant, really....) _________________ McManus
----
Linux user #267375 - http://counter.li.org |
|
Back to top |
|
|
carambola5 Apprentice
Joined: 10 Jul 2002 Posts: 214
|
Posted: Tue Nov 12, 2002 9:00 pm Post subject: |
|
|
I'm at work, so this has to be kinda quick. A short modification to my script will remove the bug... somewhat.
Using the -o (--onlydeps) option to emerge--found on the man page-- you can install the deps to a program independently of the main package. Therefore, the download/compile times for the actual package may be determined. BUT, it only half-solves the problem. You can't get dl/compile times for the deps.
I'll modify the script when I have time (three tests in the next 36 hours). I realize "time" would kind of work, but it doesn't separate the download and compile times, two BIG variables. What if someone has a 486 with fast cable as opposed to a 2400+ XP with dial-up? |
|
Back to top |
|
|
McManus Apprentice
Joined: 10 Apr 2002 Posts: 176 Location: Austin, TX
|
Posted: Tue Nov 12, 2002 10:42 pm Post subject: |
|
|
carambola5 wrote: | I'm at work, so this has to be kinda quick. A short modification to my script will remove the bug... somewhat.
Using the -o (--onlydeps) option to emerge--found on the man page-- you can install the deps to a program independently of the main package. Therefore, the download/compile times for the actual package may be determined. BUT, it only half-solves the problem. You can't get dl/compile times for the deps.
I'll modify the script when I have time (three tests in the next 36 hours). I realize "time" would kind of work, but it doesn't separate the download and compile times, two BIG variables. What if someone has a 486 with fast cable as opposed to a 2400+ XP with dial-up? |
Good point... I was thinking about that yesterday, but I seemed to have forgotten about it _________________ McManus
----
Linux user #267375 - http://counter.li.org |
|
Back to top |
|
|
guero61 l33t
Joined: 14 Oct 2002 Posts: 811 Location: Behind you
|
Posted: Tue Nov 12, 2002 10:44 pm Post subject: |
|
|
I understand your approach, I'm just trying to reach a more generalized, complete solution. For your own means, standard timing will work great. However, if we can get it to work for all of gentoo, it'll make it that much more useable. |
|
Back to top |
|
|
|