[Tutor] better resolution on time.sleep()?
Roger Merchberger
zmerch at 30below.com
Thu May 26 20:40:41 CEST 2005
Rumor has it that Alan G may have mentioned these words:
> > I'm running an application that has a polling loop to check a serial
>port
> > for certain signals, and on my laptop I can get about 6700 samples
>per
> > second, which (of course) consumes 100% CPU; which may impact
>battery life.
>
>Consuming 100% CPU won't make much difference, the CPU is running all
>the time anyway (when its not asleep).
Not mine... my laptop runs a Crusoe processor, and it can automatically
scale itself from 300Mhz to 933Mhz. It's called "LongRun" technology, and
it works quite well, too. On my extended battery at "near idle" ... say,
playing Spider, I get 5+ hours of battery life (and the battery's 2 years
old, just like the laptop). Running the program at full tilt, I get just
over 2 hours (but admittedly, it's scanning my USB->RS232 dongle, and I
don't know how much current that may take... However, it's not
transmitting, so it shouldn't be an overly huge amount.) I can run more
tests if anyone's interested, but...
Since the first Pentium (and possibly '486s) the CPU could put itself in a
wait state to conserve CPU cycles that weren't being used -- and "wake
itself up" automatically when needed. WinNT 4.0 and newer (and most *nixen)
could use that, altho it didn't make *as much* difference for thermal or
power aspects back then; the ability was there mainly for multiprocessor
applications. Now they've improved it for both thermal and power usage
functions as well.
> What will consume batteries much
>faster is if you are accessing hardware such as disk or modem or other
>power hungry devices.
I would only get about 1.5 hours (when the battery was new) compiling my
LinuxFromScratch -- 100% CPU, HD getting hammered and snagging packages off
of the CDROM... yea, the battery (and external charger) got quite a workout
those few weeks... ;-)
>I've never tried in Python but can you use select()?
>I've used it in C for short duration intervals.
Never used it yet (altho I saw references that Python's time.sleep()
actually *uses* select instead of usleep/nanosleep.
Not being a C hacker, I don't know much about it, but I'll check it out.
Thanks!
=-=-=
I was also looking into trying the usleep implementation in wxPython --
well, I couldn't get the rascal compiled on my old Linux From Scratch
version 4 installation (my main working Linux for that laptop) no matter
what I turned off in .configure... I guess I should prioritize my LFS6
install a bit higher. ;-)
Thanks one and all, and back to "quiet mode" I go... ;-)
Roger "Merch" Merchberger
--
Roger "Merch" Merchberger | "Profile, don't speculate."
SysAdmin, Iceberg Computers | Daniel J. Bernstein
zmerch at 30below.com |
More information about the Tutor
mailing list