diff options
author | Mathieu Chartier <mathieuc@google.com> | 2014-11-26 11:21:15 -0800 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2014-11-26 16:06:35 -0800 |
commit | 91c2f0cde2a009bd52aa1c3d1dee705cc02c932f (patch) | |
tree | 55c02c51308df051c76d89a09627ad16d8f45f72 /runtime/java_vm_ext.cc | |
parent | bd6bb37c377e78aeafb4faf9acd70efbcbc62d30 (diff) | |
download | android_art-91c2f0cde2a009bd52aa1c3d1dee705cc02c932f.tar.gz android_art-91c2f0cde2a009bd52aa1c3d1dee705cc02c932f.tar.bz2 android_art-91c2f0cde2a009bd52aa1c3d1dee705cc02c932f.zip |
Trim reference tables when we trim the heap
Before:
System server:
virtual shared shared private private
size RSS PSS clean dirty clean dirty # object
2200 300 229 0 80 0 220 77 /dev/ashmem/dalvik-indirect ref table (deleted)
Location:
1896 128 102 0 28 0 100 39 /dev/ashmem/dalvik-indirect ref table (deleted)
After:
virtual shared shared private private
size RSS PSS clean dirty clean dirty # object
System server:
2216 64 64 0 0 0 64 79 /dev/ashmem/dalvik-indirect ref table (deleted)
Location:
2120 48 48 0 0 0 48 67 /dev/ashmem/dalvik-indirect ref table (deleted)
No pause time regression measured in memalloc test.
(cherry picked from commit 84dc99d2fa67e5dff018685661cb2bff62132989)
Change-Id: I80d9bd3b98e888fa8f77d03df69f8479ed209986
Diffstat (limited to 'runtime/java_vm_ext.cc')
-rw-r--r-- | runtime/java_vm_ext.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc index a5abce6ab1..5d04faccb5 100644 --- a/runtime/java_vm_ext.cc +++ b/runtime/java_vm_ext.cc @@ -756,6 +756,11 @@ void JavaVMExt::SweepJniWeakGlobals(IsMarkedCallback* callback, void* arg) { } } +void JavaVMExt::TrimGlobals() { + WriterMutexLock mu(Thread::Current(), globals_lock_); + globals_.Trim(); +} + void JavaVMExt::VisitRoots(RootCallback* callback, void* arg) { Thread* self = Thread::Current(); { |