a98ffd745bbecb2e84a492194950c0b94966546b |
|
26-Sep-2014 |
Mathieu Chartier <mathieuc@google.com> |
Fix broken runtime SetStatsEnabled logic Previously, Runtime::SetStatsEnabled wouldn't take stats_enabled_ into account when deciding whether or not to increment / decrement teh stats enabled counter. This resulted in counter underflows and other errors which caused some CTS tests to fail. Also added some locking to prevent race conditions. Bug: 17360878 Change-Id: I779237d55dda4f35054a4d27fb2c660a38750fc0
|
1d6ee090fddd4bfd35c304d6ceb929d5c529dfcc |
|
16-Sep-2014 |
Jeff Hao <jeffhao@google.com> |
Avoid suspending for alloc trace enabling when already suspended. Bug: 17499772 Change-Id: Id98c10967b28e8859e5ac46f5878c304fb85c498
|
dd157d732b557a854b3689faf8a24170fb47c270 |
|
15-May-2014 |
Ian Rogers <irogers@google.com> |
Avoid some unnecessary use of stl types. May be a minor performance win but really done for libc++ as this removes a dependency on a library function whose prototype includes a std::string. Change-Id: Ifc07a9caef1206caf2a69a6e1b0bfc0ba56c8c62
|
53b8b09fc80329539585dcf43657bc5f4ecefdff |
|
14-Mar-2014 |
Ian Rogers <irogers@google.com> |
Refactor reflective method invocation. Move invocation code out of JNI internal into reflection, including ArgArray code. Make reflective invocation use the ArgArray to build arguments rather than allocating a jvalue[] and unboxing arguments into that. Move reflection part of jni_internal_test into reflection_test. Make greater use of fast JNI. Change-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057
|
83c8ee000d525017ead8753fce6bc1020249b96a |
|
28-Jan-2014 |
Mathieu Chartier <mathieuc@google.com> |
Add root types and thread id to root visiting. Enables us to pass the root type and thread id to hprof. Bug: 12680863 Change-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb
|
412c7fced915fc8d4d5e4166e977d55c809168a6 |
|
07-Feb-2014 |
Mathieu Chartier <mathieuc@google.com> |
Make debugger / jdwp compaction safe. Fixed GetInstances, GetReferringObjects, CountInstances to use VisitObjects instead of the live bitmap. We now treat the object registry as system weaks and update the objects when/if they move. Also added the recent_allocation_records_ as roots. Bug: 12936165 Change-Id: I615c289efbf2977ceab5c4ffa73d216d799e6e33
|
1f3b5358b28a83f0929bdd8ce738f06908677fb7 |
|
03-Feb-2014 |
Mathieu Chartier <mathieuc@google.com> |
Move SwapBitmaps to ContinuousMemMapAllocSpace. Moved the SwapBitmaps function to ContinuousMemMapAllocSpace since the zygote space uses this function during full GC. Fixed a place where we were casting a ZygoteSpace to a MallocSpace, somehow this didn't cause any issues in non-debug builds. Moved the CollectGarbage in PreZygoteFork before the lock to prevent an occasional lock level violation caused by attempting to enqueue java lang references with the a lock. Bug: 12876255 Change-Id: I77439e46d5b26b37724bdcee3a0948410f1b0eb4
|
4044bdac490777cbc8a12d467bec675ef8aa6eb1 |
|
07-Jan-2014 |
Jeff Hao <jeffhao@google.com> |
Add sample profiling interface to startMethodTracing. Art side of this change. Also changed libcore and frameworks base. Change-Id: I556678013cf1f4e9bef064a1ae43a6109303797c
|
692fafd9778141fa6ef0048c9569abd7ee0253bf |
|
30-Nov-2013 |
Mathieu Chartier <mathieuc@google.com> |
Thread local bump pointer allocator. Added a thread local allocator to the heap, each thread has three pointers which specify the thread local buffer: start, cur, and end. When the remaining space in the thread local buffer isn't large enough for the allocation, the allocator allocates a new thread local buffer using the bump pointer allocator. The bump pointer space had to be modified to accomodate thread local buffers. These buffers are called "blocks", where a block is a buffer which contains a set of adjacent objects. Blocks aren't necessarily full and may have wasted memory towards the end. Blocks have an 8 byte header which specifies their size and is required for traversing bump pointer spaces. Memory usage is in between full bump pointer and ROSAlloc since madvised memory limits wasted ram to an average of 1/2 page per block. Added a runtime option -XX:UseTLAB which specifies whether or not to use the thread local allocator. Its a NOP if the garbage collector is not the semispace collector. TODO: Smarter block accounting to prevent us reading objects until we either hit the end of the block or GetClass() == null which signifies that the block isn't 100% full. This would provide a slight speedup to BumpPointerSpace::Walk. Timings: -XX:HeapMinFree=4m -XX:HeapMaxFree=8m -Xmx48m ritzperf memalloc: Dalvik -Xgc:concurrent: 11678 Dalvik -Xgc:noconcurrent: 6697 -Xgc:MS: 5978 -Xgc:SS: 4271 -Xgc:CMS: 4150 -Xgc:SS -XX:UseTLAB: 3255 Bug: 9986565 Bug: 12042213 Change-Id: Ib7e1d4b199a8199f3b1de94b0a7b6e1730689cad
|
7410f29b4dae223befac036ea567d7f33351dad1 |
|
24-Nov-2013 |
Mathieu Chartier <mathieuc@google.com> |
Fix dumpsys meminfo <pid>. Added a case for BumpPointerSpaces. Confirmed working non-debug. Should also work in debug builds. Bug: 11830794 Change-Id: I12053ff16eec403dcd4a780e13095e3212a77132
|
cf58d4adf461eb9b8e84baa8019054c88cd8acc6 |
|
26-Sep-2013 |
Hiroshi Yamauchi <yamauchi@google.com> |
A custom 'runs-of-slots' memory allocator. Bug: 9986565 Change-Id: I0eb73b9458752113f519483616536d219d5f798b
|
479b494a5d303b4e201e15a630e3de5a7bf36ff2 |
|
29-Aug-2013 |
Jeff Hao <jeffhao@google.com> |
Change IsMethodTracingActive to GetMethodTracingMode for art. This allows traceview to tell whether sampling or just normal method profiling is enabled. Bug: 9968521 Change-Id: I518a1888a90bc50568fe56bf708d801027ac98d7 (cherry picked from commit 64caa7dcf46ed6139b766dbe77fbd7353899417f)
|
64caa7dcf46ed6139b766dbe77fbd7353899417f |
|
29-Aug-2013 |
Jeff Hao <jeffhao@google.com> |
Change IsMethodTracingActive to GetMethodTracingMode for art. This allows traceview to tell whether sampling or just normal method profiling is enabled. Change-Id: I518a1888a90bc50568fe56bf708d801027ac98d7
|
cf2fb8e6430059cc7fe0a6f931555bb717988393 |
|
23-Aug-2013 |
Jeff Hao <jeffhao@google.com> |
Add art support for sample profiling from traceview gui. Change-Id: I6004bf143521b872084ca4aae873bea3524aa895 (cherry picked from commit 23009dca63c1699e28bfeaa8b45ca48fa0e86ace)
|
23009dca63c1699e28bfeaa8b45ca48fa0e86ace |
|
23-Aug-2013 |
Jeff Hao <jeffhao@google.com> |
Add art support for sample profiling from traceview gui. Change-Id: I6004bf143521b872084ca4aae873bea3524aa895
|
7dfb28c066159e6cde8181720f0c451a700ef966 |
|
22-Aug-2013 |
Ian Rogers <irogers@google.com> |
Don't scan image space when starting runtime. Bug 10432288. Find Classes and Strings from dex caches lazily rather than when the image is loaded. Make class status changes do notifies when there can be waiters. For Class lookup there's a pathology if we always search dex caches and so after 1000 failures move all classes into the class table. Be consistent in using "const char*" for class linker descriptors as this most easily agrees with the type in the dex file. Improve the intern run-test so that it has a case of a literal contained in the image. Modify image_test to allow any valid lock word rather than expecting 0, ideally we wouldn't see inflated monitors but we do due to NotifyAll (see bug 6961405). Change-Id: Ia9bfa748eeccb9b4498784b97c6823141b1f6db8
|
834b394ee759ed31c5371d8093d7cd8cd90014a8 |
|
31-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Merge remote-tracking branch 'goog/dalvik-dev' into merge-art-to-dalvik-dev Change-Id: I323e9e8c29c3e39d50d9aba93121b26266c52a46
|
7934ac288acfb2552bb0b06ec1f61e5820d924a4 |
|
26-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Fix cpplint whitespace/comments issues Change-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496
|
6b99dd10d8a4869bbf7e9263a350185e5ebe32e4 |
|
25-Jul-2013 |
Ian Rogers <irogers@google.com> |
Remove a C style cast. Change-Id: I0d9aab958ef5fdc4a4497b6364db415f5f32eb3c
|
09b07a96094086e205948717666025909a75163b |
|
15-Jul-2013 |
Hiroshi Yamauchi <yamauchi@google.com> |
Show size/alloc/free per Dalvik heap space in dumpsys Add the heap size/alloc/free stats to the Dalvik heap space breakdown section in dumpsys meminfo. Also, now the zygote heap has a distict ashmem region name. Bug: 9532137 Bug: 8266259 Change-Id: Ieeb02f5f5ebf7ffe35d4b55ad81d46989af2827b
|
7940e44f4517de5e2634a7e07d58d0fb26160513 |
|
12-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Create separate Android.mk for main build targets The runtime, compiler, dex2oat, and oatdump now are in seperate trees to prevent dependency creep. They can now be individually built without rebuilding the rest of the art projects. dalvikvm and jdwpspy were already this way. Builds in the art directory should behave as before, building everything including tests. Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
|