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
