It is probably not related, but we had something similar a while back.
An app was allocating and freeing a lot of small blocks of memory.
Every once in awhile the system would try to allocate a block of memory
and the system would hang for seconds inside memory management. Once I
had the programmer change to keeping a couple of handles around for the
life of the form (then just locking/unlocking instead of PtrNew PtrFree)
the problem went away.
I never traced it, though I figured maybe the heap was list based and
the collapse routine was recursive.
A lot of IrDA activity between my laptop and an HP printer also seems to
make my IIIx sluggish, but that wouldn't explain a slowdown on the
emulator.
Sorry I couldn't be of more help.
-jjf
-----Original Message-----
From: Red Mercury [mailto:[EMAIL PROTECTED]]
Sent: Thursday, March 30, 2000 8:20 AM
To: Palm Developer Forum
Subject: 5 second mystery pause
Atom Smash (AS) occasionally exhibits 4 to 5 second halt in the action.
I am
trying to figure out why. I'm braindumping all the info I have on this
problem, but I'm pretty sure that this isn't enough info to diagnose the
problem. I'm looking for clever ways to track this down mostly, but if
anyone has magically experienced this exact same problem and has a
solution,
super.
The symptoms are:
- Randomly, and infrequently, gameplay will freeze for 4 to 5 seconds,
then
resume normally
- I have seen it happen on the emulator and real devices, on various OS
versions
- It sometimes happens shortly after starting up the app (within a
minute or
two), it sometimes takes 20 minutes or more to happen, and sometimes
seems
to never happen at all.
The environment is:
The app depends on nilEvents for its updates. During gameplay,
EvtGetEvent
is called with an appropriate (and consistent) delay value to ensure
that
nilEvents are sent to keep things moving.
The possibilities I have come up with are:
a) My code is doing something that takes 4 to 5 seconds and occurs
randomly
b) My code is handling nilEvents improperly, causing the OS to
occasionally
sit back for a bit and think
c) My code is doing something incorrectly with the hard keys, causing
the OS
to occasionally sit back for a bit and think
d) The OS has normal 4-5 second pauses related to some sort of
notification,
and you normally don't notice it
My analysis of each of the above is below:
a) (is it all my code?) Clearly I can't locate anything in my own code
that
is causing this or I would have fixed it, but I am unsure how to
determine
who or what is causing this pause in the first place, so I can't rule
out my
code.
b) (is it nilEvents?) Many nilEvents are generated, and if they stop
flowing, this type of pause is what would result. However,
SysHandleEvent
and MenuHandleEvent are given a crack at the nilEvents before my code
gets
to them, so I think the OS is being fed properly.
c) (is it hard keys?) Hard keys are disabled with KeySetMask. Perhaps
the OS
is stuffing these key events somewhere, and occasionally has to barf
them?
If this were the case, I think the mystery pause would be more
consistent.
d) (is it a normal OS pause?) I have seen normal OS pauses similar to
this,
e.g. the stroke of midnight, but I have tried to correspond these delays
to
some sort of time or alarm event with no luck. It seems pretty random,
so I
don't think it's time based, but perhaps there is some other occasional
housekeeping that could cause such a pause?
Some things I haven't done yet:
Have not added code to detect a long pause (this should be easy to do -
I
could track every event, then when a >1 sec pause happens, dump out the
last
10 events)
Have not determined if an event (like a screen tap) breaks out of the
4-5
second pause (this would answer the question: "is it just not getting an
event for 5 seconds")
Thanks for any input!
Scott
Red Mercury, LLC
http://www.red-mercury.com
--
For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palm.com/devzone/mailinglists.html
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palm.com/devzone/mailinglists.html