Hi all,

So many times, I have heard people do not understand why scrolling is so
slow, animation is not smooth.  Gecko is so async that so many runnables
are post over numerous threads, so it is very hard to trace how b2g
spend the time for events.  Events are timer, input events, network
messages.

We are working on a tool to help people to correlate runnables spread
over threads and processes (b2g & content process).  The basic idea is
to give every runnable an unique ID, all runnables created by a runnable
share the same unique ID.  Only the runnables created by events from
kernel/platform; e.g. input event, timer, network, sensors, ..., would
be assigned a new unique ID.  So we can correlate all runnables
according unique IDs to understand the tracks of events.

The runnables created by events are origins.  For example an input event
post a runnable on the main thread, that runnable is the origin of the
event.  The origin gets a new unique ID.  The origin may create a series
of more runanbles, they all share the same ID.  By recording timestamp
for equeuing, dequeuing, and completion of runnables, and the unqiue
IDs, we can study how b2g spend the time and latency between threads for
events.

The unique IDs would be passed over IPC, so we can trace runnables
passed among processes.  Some more information can be attached with the
unique IDs.  But we would like to start by simple, so I don't mention
details here.

Cervantes, and others, and I will start to make a prototype.
Any feedback is welcomed!

-- 
Sinker
--
天教懶漫帶疏狂
_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to