Those of you who have been reading this blog know about "Woof" and my live-CD builds based on Ubuntu Intrepid packages. You will know that I have been complaining about the Xorg 7.4 Intel driver -- basically, it's broken and 7.4 should not have been released nor should Intrepid have been released with 7.4. Now I have something even worse to complain about...
These builds seem fast, at least applications start up as fast as in Puppy4, however I did notice that my scripts seemed slower. Just how much slower didn't really dawn on me until I was running the latest '3builddistro' script in Woof Unleashed, that has a particularly intensive code loop.
Anyway, I decided to conduct an experiment. I wrote this little script, that I named 'speed-test':
while [ $CNT -lt 10000 ];do
CNT=`expr $CNT + 1`
bCNT=`expr $CNT \/ 1000`
[ $bCNT -gt $bCNTold ] && echo -n '.'
DIFFSECS=`expr $STOPSECS - $STARTSECS`
echo "$DIFFSECS seconds"
Running Puppy 4.1.2 on my laptop, running in RAM only, it took 33 seconds. In my latest Woof build, again running in RAM, it took 155 seconds. Wow!
Yesterday I went on a great adventure, trying to find out why this difference. I even built Woof with the exact same 18.104.22.168 kernel as Puppy 4.1.2. I eliminated many boot scripts, killed almost all daemons, tested without X running, the best that I could get it down to in Woof was 142 seconds.
I tried on different computers, same story everywhere.
After running the System Profiler I was beginning to think that there is something fundamentally sick in the libc shared library.
What about Woof? Maybe I had done something wrong, although I couldn't imagine what. I have Xubuntu Intrepid 8.10 installed to hard drive on one of my computers, so I tested on that machine. I booted Puppy4, my little 'speed-test' took 59 seconds. I then booted Xubuntu, and the script took ... wait for it... 328 seconds!
What do you think about this? I have come to the conclusion that the Intrepid developers have lost the plot*. I am moving Woof over to Debian, building from "testing", which is the upcoming "Lenny" release -- one good thing, it has Xorg server 1.4.x, which I think means they are still on Xorg 7.3.
* ah hem, no, that was the passion of the moment speaking. See my later post:
Comments:Posted on 31 Jan 2009, 16:51 by Sage
Ummm.... how rude is it to tell an Aussie 'told you so'?!
Not in the least bit surprised. On the Forum, I've been trying to steer folks away from the *buntu s for a long while and have been especially critical of Xbuntu. Just yesterday I reported on the time-waster Mint derivative, so popular as a cult distro. As for Xorg7.4, I can't claim to be first to highlight its disastrous features. Whilst I could write my knowledge of coding on the head of a pin, when it comes to experience as a user, the story is very different. All products, soft, firm or hard, eventually have to succumb to the destructive testing of their putative users. Without end-user approval best efforts are futile. So far, Puppy-straight is ahead of the game. Cut out the fancy stuff, drop the .iso to eg <60Mb, erase duplication, remove Seamusty and substitute Opera10alpha and BINGO P4.1.3 shoots to No.1 on Ladislav's list, BK gets a call from Buck House and is elected next PM in Oz.
Posted on 31 Jan 2009, 17:20 by tronkel
I have got both Intrepid and Lenny installed on my main PC 2.4GHz AMD processor and 4GB RAM. Intrepid feels very sluggish in comparison to Lenny testing even on this fast hardware the difference is very noticeable. OK, there must be big problems there with Intrepid, so I'm removing Intrepid from my system until it gets fixed. Looking forward to Lenny final. Also goes to show that even if there are big delays to getting to final, it's worth it if the system is properly sorted -right from the beginning. Maybe a lesson for Puppy here as well.
Posted on 31 Jan 2009, 17:37 by drongo
Why do you think we use Puppy ratehr than anything else?
Posted on 31 Jan 2009, 19:26 by Dougal
I don't know about their libc, but I do know that Ubuntu have moved to using dash (POSIX compliant shell) as the default shell, since it's much faster than bash.
Posted on 31 Jan 2009, 19:27 by pupmate
Just tried your speed-test on bog standard installs of Puppy 411 and Ubuntu 8.10 (intrepid). Puppy took 30 secs and Ubuntu took 40 secs. This on a Travelmate 2420 laptop.
Results nothing like you experienced but interesting non-the-less.
Posted on 31 Jan 2009, 19:33 by Lane Lester
I just tried it on my Ubuntu 64-bit Intrepid, and it took 58 seconds. The machine is a few-years old HP AMD64 1GB RAM.
Posted on 31 Jan 2009, 22:13 by BarryK
It's the locale setting:
For those speeds of 40 and 58 seconds, do you have a non-utf8 locale setting? I think if you do 'echo $LANG' in a terminal, it is shows something with 'utf8' on the end then it is utf8.
Posted on 10 Feb 2009, 11:17 by BarryK
I need to add a clarification, as this blog thread has appeared in Distrowatch Weekly.
My blog posts are real-time, and any one post should not be read in isolation. I may just be blowing off steam, or trying something then something else the next day.
Anyway, in summary, Woof is a "Puppy builder" that currently supports Debian, Ubuntu and Slackware. All three. Distrowatch mentions a speed problem with Ubuntu -- in later blog posts I have reported that to be solved.
There is no working code uploaded yet. I did upload a snapshot a couple of weeks ago, but that was primitive. I expect to upload the first alpha soon.
I'm thinking that I might also support building from a fourth distro. Kindly monitor http://puppylinux.com/blog for the latest news.
Posted on 11 Feb 2009, 6:13 by petecardiff
while [ $CNT -lt 10000 ];do
# CNT=`expr $CNT + 1`
# bCNT=$(expr $CNT \/ 1000)
bCNT=$(($CNT / 100))
[ $bCNT -gt $bCNTold ] && echo -n '-'
DIFFSECS=$(expr $STOPSECS - $STARTSECS)
echo "$DIFFSECS seconds"
Commenting out expr lines, and using integral arithmetic yields 0.6 seconds on Antix / Mepis versus expr way at 21~24 seconds.
Used /100 for a nice progress bar ;-) .
Seems to suggest expr itself is the culprit, not locales per se.
Sorry, I've barely used Puppy... but I do know expr is used heavily in the scripts.
Unsure if recoding the scripts, in integral, is feasible.
Posted on 11 Feb 2009, 16:59 by BarryK
Yeah, I know you can use the built-in $(( )) but I wanted to have an external application in the loop, as this is common in shell scripts (grep, awk, tr, cut, etc.).
So, if you stuck a 'grep' somewhere into your script loop you would (I expect) get a dramatic slow down.