You are doomed if you just want to be able to schedule exactly 80ms every
time so that you add it all up after 1000 times and you get 80 seconds.

At the very least, you should schedule your events so that even if there is
some jitter in individual timings they add up correctly -- that is start at
the current time, then schedule each next event for a successive 80ms from
that base time, regardless of when the previous event actually fired.

At this point, then, the only question is how much jitter between events you
will find acceptable.  As Richard said, some big events can cause a fair
amount of jitter, in particular GCs.  The platform is designed to avoid
thrashing through objects and thus not cause GCs, so if you are likewise
careful you may be able to do things so that GCs don't happen enough to be
an issue.  For perspective: on low-end hardware, a GC can take on the order
of 100ms; on higher-end devices like the Droid it is more like 30ms.

If that is still not sufficient, you may want to consider dropping down to
native code and doing the timing in a separate native thread (which thus
won't be paused by GCs).  Of course you still won't have 100% accurate 80ms
every time because there will still be other processes wanting to run at
times, though the jitter will be significantly smaller (as long as your
process is not in the background scheduling group).

On Mon, Jul 5, 2010 at 7:30 AM, Omer Gilad <[email protected]> wrote:

> Hello,
> Does anyone know of a precise way of measuring 80 milliseconds for
> scheduling purposes?
> Thread.sleep() and SystemClock.sleep() don't seem accurate enough.
>
> Purpose - I want to schedule a certain event to happen in an exact
> interval of 80 milliseconds and I don't want the time to skew
> (scheduling 1000 such events must take 80 seconds in total).
>
> Thanks
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to