summaryrefslogtreecommitdiff
path: root/tools/aapt2/java/JavaClassGenerator_test.cpp
diff options
context:
space:
mode:
authorRyan Mitchell <rtmitchell@google.com>2020-06-02 15:10:13 -0700
committerRyan Mitchell <rtmitchell@google.com>2020-06-04 00:47:35 +0000
commita74111f81c993b442c474a56e28f1b008ab61413 (patch)
tree9989511132ff632f38f306232398aa4ca6ef22bc /tools/aapt2/java/JavaClassGenerator_test.cpp
parent57e977a5859ff24f5ff909046dccde5bce341f6d (diff)
Use a ReferenceQueue to prune weak references
Currently ResourcesManager iterates over all of its weak references to Resources objects and calls Reference#get to determine if the object has been garbage collected. This method of pruning WeakReferences causes reference locks to be acquired in the native layer and causes lock contention when "references are being processed" by the garbage collector. This change uses a ReferenceQueue to determine if a reference has been garbage collected which should improve performance of ResourcesManager#getResources when the system is under memory pressure. By only removing garbage collected references when creating new Resources objects, the lists grow larger and are periodically pruned rather than attempting to prune entries from the list every getResources invocation. Bug: 157575833 Test: used debugger to observe pruning happening correctly hange-Id: I3277e80edfa441d24de165e738d33c4fac6b4121 Change-Id: I3277e80edfa441d24de165e738d33c4fac6b4121
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator_test.cpp')
0 files changed, 0 insertions, 0 deletions