a2934d5ff0
Every incoming Binder call ends up triggering a BlockGuardPolicy update, which would thrash between new AndroidBlockGuardPolicy instances and BlockGuard.LAX_POLICY, causing GC churn. This change avoids the extra allocations by recycling a single AndroidBlockGuardPolicy in a ThreadLocal. Worst-case thrashing case is now 10% faster; from 7.46us to 6.65us. Bug: 9424568 Change-Id: I9c3b1c097a2aecc9b1f109a824cf3ea319fb3393
These benchmarks use the Caliper benchmark framework, and can be run on a remote device using Vogar: http://code.google.com/p/caliper/ http://code.google.com/p/vogar/ $ vogar --benchmark path/to/Benchmark.java