Binder calls stats - random sampling.
Change the sampling method to be random. The previous mechanism recorded one call for each key (uid/API name) and every X calls for each key: - This is biased and will make it to interpret the data from westworld. It was especially unfair for apps using many different APIs since the first call to each API was always recorded. - It uses more memory since we will keep track of all the long tail Simplify/unify the way we keep track of sampled calls. Do not estimate the CPU usage of non-recorded calls long samplesCount = cs.callCount / mPeriodicSamplingInterval + 1; duration = cs.cpuTimeMicros / samplesCount; It biases the results, let's use an example with 3 calls: 1ms, 3ms, 5ms with an sampling interval of 2. With the previous algorithm we would get an average per call of (1+1+3+2+5)/5=2.4ms. With the new one (1+3+5)/3=3ms. Test: unit tests Change-Id: I1dd7eb3c6c631b86a53485bccbfa397882cccc92
Loading
Please register or sign in to comment