This view lets you trace server time back to individual clients, by showing, for each thread, the time that it spent performing work for itself (self time) or that another thread spent performing work for it (imposed time).
In a message-passing system such as QNX Neutrino, sometimes a particular thread consumes a lot of CPU time but that time is primarily spent servicing client requests. In this case, the total CPU usage for that server thread doesn't tell the whole story because you need to know which clients are imposing the heaviest load so you can optimize them. To identify clients and servers, the System Profiler uses the message-passing events in the kernel event trace log. For an explanation of self time versus imposed time in relation to such events, see Isolating client and server CPU loads.
You can expand the table to show how much CPU time each client imposed on individual servers. To do so, click
Show all times in the upper right dropdown. The table then displays columns containing server names
and listing the times imposed by each client. This makes the table quite wide, so you'll likely have to scroll right to
find the metrics of interest.
Note that imposed time is cumulative: if client A sends to server B, then until B replies to A, any CPU time that B consumes is seen as imposed time for A. If during that time B sends to server C, then server C's CPU time is also billed as imposed time for A. The rationale here is that B would not have engaged with C if A hadn't sent the initial message to B.
To sort the table by a metric, click its column header once for descending order or twice for ascending order. Sorting the threads by Imposed Time lets you quickly identify which clients are predominantly driving the system and which servers may be bottlenecks.