e792305f5238df71a1928faf142cd35713aa3e47 |
|
26-Apr-2016 |
Richard Uhler <ruhler@google.com> |
Deduplicate simple roots in hprof. Bug: 28311991 Change-Id: Id5ee7d7753016fafdec0c8f5cda5b1b052fa9ad1
|
458b105a9cbab6156d72acf3b9372291dba9097a |
|
29-Mar-2016 |
Mathieu Chartier <mathieuc@google.com> |
Obtain stack trace outside of critical section Fixes deadlock if the stack walk does allocations, changed stack trace format to prevent slowdown. Added missing GetInterfaceMethodIfProxy to fix a crash in maps. Bug: 27857910 (cherry picked from commit 23428587d32361736d4c5e0ba7270c7602695a43) Change-Id: I64373bcd87a68fdd1b58fb855db2b16c9f6ed36b
|
23428587d32361736d4c5e0ba7270c7602695a43 |
|
29-Mar-2016 |
Mathieu Chartier <mathieuc@google.com> |
Obtain stack trace outside of critical section Fixes deadlock if the stack walk does allocations, changed stack trace format to prevent slowdown. Added missing GetInterfaceMethodIfProxy to fix a crash in maps. Bug: 27857910 Change-Id: Iba86b7390a87349c38785297ac76751417b0fc87
|
c9cd7ac27479c2fbc4c8451536ec628307f260cd |
|
20-Jan-2016 |
Mathieu Chartier <mathieuc@google.com> |
Add stack trace info to hprof completion message Bug: 25795907 Change-Id: Iba39ac9467ed57ee37c7dd17f1b21e28c7e556c7
|
4f55e22630d99ca0edd9e951e5ee96b57bb9b980 |
|
04-Sep-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add and use ScopedSuspendAll Usage replaces most SuspendAll and ResumeAll calls. Change-Id: I355683a5365876242cea85a656dcb58455f7a294
|
c515f21dabd53e1b68bd2780fe86039d0dab49f8 |
|
29-Aug-2015 |
Andreas Gampe <agampe@google.com> |
ART: Weaken size check in hprof Dumping the heap is a two-phase process. In the first phase, all objects are visited to fill the header tables. In the second phase, the tables are written out and the heap is visited again to write the object records. Deleting global references doesn't require the mutator lock. So it is possible to delete a global ref in-between the first and the second phase. This leads to a smaller set of object records. The result is still safe, as the object's class etc. is still in the header tables, and the object won't be deleted, so will still be dumped by itself. Bug: 23521263 (cherry picked from commit e4cf5892c2a244034900d49499c071b255571bba) Change-Id: I019c29b13ceb9f13e362c742662f1546d52c37a0
|
e4cf5892c2a244034900d49499c071b255571bba |
|
29-Aug-2015 |
Andreas Gampe <agampe@google.com> |
ART: Weaken size check in hprof Dumping the heap is a two-phase process. In the first phase, all objects are visited to fill the header tables. In the second phase, the tables are written out and the heap is visited again to write the object records. Deleting global references doesn't require the mutator lock. So it is possible to delete a global ref in-between the first and the second phase. This leads to a smaller set of object records. The result is still safe, as the object's class etc. is still in the header tables, and the object won't be deleted, so will still be dumped by itself. Bug: 23521263 Change-Id: I019c29b13ceb9f13e362c742662f1546d52c37a0
|
aa50d3a01a4137cd89c152be5487fed23683d0ff |
|
25-Aug-2015 |
Sebastien Hertz <shertz@google.com> |
Add missing field init in constructors Adds missing field initializations detected by Eclipse IDE. Change-Id: I5f2f32bcccb12545fc9f0b42fcec74a23dc81376
|
059ef3ddb2088f926ac452889e0953fdcd646a5e |
|
18-Aug-2015 |
Mathieu Chartier <mathieuc@google.com> |
Always visit object class from VisitReferences We don't want to unload classes which have instances. Slight increase in CMS GC time from ~6.5s to ~7.3s on EvaluateAndApplyChanges. Bug: 22720414 Change-Id: I467ff9c9d55163d2a90b999aef3bdd7b3f648bac
|
e4275c07e9852a6944f47efa9d0591fceb8e8e36 |
|
07-Aug-2015 |
Mathieu Chartier <mathieuc@google.com> |
Visit class roots from ClassLoader::VisitReferences This causes the classes of a class loader to get marked when that class loader gets marked instead of during class root visiting. Bug: 22720414 Change-Id: If53f042aff1d9f7bf94ecbe6886601edda029b7d
|
90443477f9a0061581c420775ce3b7eeae7468bc |
|
17-Jul-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move to newer clang annotations Also enable -Wthread-safety-negative. Changes: Switch to capabilities and negative capabilities. Future work: Use capabilities to implement uninterruptible annotations to work with AssertNoThreadSuspension. Bug: 20072211 Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
|
42c3c33df8b6eefc4ba532f1981282510f109928 |
|
24-Jun-2015 |
Man Cao <manc@google.com> |
Make allocation tracker use less memory The allocation tracker no longer keeps recently allocated objects live. Instead it just keeps their class objects live as strong roots. This fixed the gc-stress test failure for 098-ddmc. Also fixed the issue in DisableNewSystemWeak() for allocation tracker, by making new allocation to wait until GC's sweeping to complete. I didn't feel any significant slowdown with this wait. Bug: 20037135 Change-Id: I6a98188832cf7ee478007e3788e742dc6e18f7b8
|
07d7eab545916ef0602afddae162f5b6b1a68b7d |
|
24-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Fix field ordering for String in hprof We were inserting value field after the Object field instead of the String fields. (cherry picked from commit c94c6a751ef1ee31cbc3b924835290bcdef731a0) Bug: 22043800 Change-Id: Ibaddbd7299562949e32eceb625feac325539e3ce
|
c94c6a751ef1ee31cbc3b924835290bcdef731a0 |
|
24-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Fix field ordering for String in hprof We were inserting value field after the Object field instead of the String fields. Bug: 22043800 Change-Id: Ibaddbd7299562949e32eceb625feac325539e3ce
|
a6d3a7ef8e648e8a65b38ea0bc475fad1d1fc105 |
|
04-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add hprof accounting for Class IMT, VTable These are now included in the classOverhead field which used to be the staticOverhead field. Bug: 20726205 Change-Id: I648db1bcaa393e3e907b1878f29631ad6b14a6e7
|
8c2ff641294715864013737fdec57cdfd410270c |
|
28-May-2015 |
Man Cao <manc@google.com> |
Add allocation stack traces for HPROF dump. This feature is currently only enabled when DDMS's allocation tracking is enabled. In the future there should be a way to enable this feature before an application starts. Also updates DDMS's recent allocation tracking to use a new backend data structure that is shared with this feature. The following system properties controls customizable parameters: dalvik.vm.allocTrackerMax: max number of objects that have allocation records, default 512K; dalvik.vm.recentAllocMax: max number of records that are sent to DDMS when clicking "Get allocation" button, default 64K-1 (limit of the protocol); dalvik.vm.allocStackDepth: max number of stack frames in an allocation record, default 4. Bug: 20037135 Change-Id: I26ed378a5613678bd3c43e846025f90470a8e059
|
e7158116f345df6df73f0df7ebdc2be8e0e4f3e8 |
|
03-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add a way to determine if a large object is a zygote object Also fix a slight memory leak in LargeObjectMapSpace. Bug: 20674158 (cherry picked from commit 8f23620d45399286564986d2541cda761b3fe0ac) Change-Id: I2416df484e5b84a8c5cc0b5664c8cb102dc235f6
|
8f23620d45399286564986d2541cda761b3fe0ac |
|
03-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add a way to determine if a large object is a zygote object Also fix a slight memory leak in LargeObjectMapSpace. Bug: 20674158 Change-Id: I2416df484e5b84a8c5cc0b5664c8cb102dc235f6
|
7c1f53e4253e6acff5e76f00e6bf666518068c4d |
|
03-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Emit instance fields for java.lang.Object in hprof Previously we omitted these fields. (cherry picked from commit 0adc90eb0592e220f787f87dbef3a9b5c1db2080) Bug: 20726205 Change-Id: I81c55919a4bd015bc0a4e7259a41a05dab534e11
|
0adc90eb0592e220f787f87dbef3a9b5c1db2080 |
|
03-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Emit instance fields for java.lang.Object in hprof Previously we omitted these fields. Bug: 20726205 Change-Id: I81c55919a4bd015bc0a4e7259a41a05dab534e11
|
bf44d42d978861f33fd5978f49392db3321ae414 |
|
02-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add a way to SuspendAll for a long duration Hprof uses this mode to not cause thread suspend timeouts if GC tries while the hprof dump is running. (cherry picked from commit 77be6635f9b07a8a794924c5fb9b071949776a6d) Bug: 21063989 Change-Id: Ic6304620afd1489719a7e0e4299f829c90fe27cc
|
77be6635f9b07a8a794924c5fb9b071949776a6d |
|
02-Jun-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add a way to SuspendAll for a long duration Hprof uses this mode to not cause thread suspend timeouts if GC tries while the hprof dump is running. Bug: 21063989 Change-Id: Ic6304620afd1489719a7e0e4299f829c90fe27cc
|
41b175aba41c9365a1c53b8a1afbd17129c87c14 |
|
19-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up arm64 kNumberOfXRegisters usage. Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 (cherry picked from commit 80afd02024d20e60b197d3adfbb43cc303cf29e0) Change-Id: I905257a21de90b5860ebe1e39563758f721eab82
|
80afd02024d20e60b197d3adfbb43cc303cf29e0 |
|
19-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up arm64 kNumberOfXRegisters usage. Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 Change-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7
|
90bcbd50aca23331869f64a2ecb8e6c292c127ff |
|
15-May-2015 |
Jeff Hao <jeffhao@google.com> |
In hprof, use an address within string for char array of empty string. Bug: 21089461 (cherry picked from commit I203345caf74fba2e9bf0549256147d84d1bb829e) Change-Id: I38d1bc0d303558ab535ec4c3aa17a046fcb055a1
|
a32474e8fe607eeee783cf681b70efbcb569de12 |
|
15-May-2015 |
Jeff Hao <jeffhao@google.com> |
In hprof, use an address within string for char array of empty string. Bug: 21089461 Change-Id: I203345caf74fba2e9bf0549256147d84d1bb829e
|
0ce43539b3bbade7d95482c4da0126a54d5bcba9 |
|
13-May-2015 |
Jeff Hao <jeffhao@google.com> |
In hprof, set string class instance size to that of an empty string. Bug: 21066704 (cherry-picked from commit c99b900283296663a37bffe06ae5ca6453748e16) Change-Id: I91fc397f8ea6bdec654eae51b82528ba5843532c
|
c99b900283296663a37bffe06ae5ca6453748e16 |
|
13-May-2015 |
Jeff Hao <jeffhao@google.com> |
In hprof, set string class instance size to that of an empty string. Bug: 21066704 Change-Id: Ic52193f5801117ca642055ea700fc4bc21b690e8
|
848f70a3d73833fc1bf3032a9ff6812e429661d9 |
|
15-Jan-2014 |
Jeff Hao <jeffhao@google.com> |
Replace String CharArray with internal uint16_t array. Summary of high level changes: - Adds compiler inliner support to identify string init methods - Adds compiler support (quick & optimizing) with new invoke code path that calls method off the thread pointer - Adds thread entrypoints for all string init methods - Adds map to verifier to log when receiver of string init has been copied to other registers. used by compiler and interpreter Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
|
2cebb24bfc3247d3e9be138a3350106737455918 |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Replace NULL with nullptr Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
|
c785344b87221f5e4e6473e5b762e4e61fe65dcf |
|
27-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move ArtField to native Add linear alloc. Moved ArtField to be native object. Changed image writer to put ArtFields after the mirror section. Savings: 2MB on low ram devices 4MB on normal devices Total PSS measurements before (normal N5, 95s after shell start): Image size: 7729152 bytes 23112 kB: .NonMoving 23212 kB: .NonMoving 22868 kB: .NonMoving 23072 kB: .NonMoving 22836 kB: .NonMoving 19618 kB: .Zygote 19850 kB: .Zygote 19623 kB: .Zygote 19924 kB: .Zygote 19612 kB: .Zygote Avg: 42745.4 kB After: Image size: 7462912 bytes 17440 kB: .NonMoving 16776 kB: .NonMoving 16804 kB: .NonMoving 17812 kB: .NonMoving 16820 kB: .NonMoving 18788 kB: .Zygote 18856 kB: .Zygote 19064 kB: .Zygote 18841 kB: .Zygote 18629 kB: .Zygote 3499 kB: .LinearAlloc 3408 kB: .LinearAlloc 3424 kB: .LinearAlloc 3600 kB: .LinearAlloc 3436 kB: .LinearAlloc Avg: 39439.4 kB No reflection performance changes. Bug: 19264997 Bug: 17643507 Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
|
ca068b2385ba160367d1e7fd123317b851b99390 |
|
07-Apr-2015 |
Sebastien Hertz <shertz@google.com> |
Ignore not yet loaded classes during hprof Skips classes that are no yet loaded because we cannot access its fields nor its superclass. This CL fixes a crash observed during the run-test 130-hprof. Bug: 20040824 Change-Id: Ia618b6c1579d35dfd726726ca6d2ff4258d8a841
|
bb87e0f1a52de656bc77cb01cb887e51a0e5198b |
|
03-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Refactor and improve GC root handling Changed GcRoot to use compressed references. Changed root visiting to use virtual functions instead of function pointers. Changed root visting interface to be an array of roots instead of a single root at a time. Added buffered root marking helper to avoid dispatch overhead. Root marking seems a bit faster on EvaluateAndApplyChanges due to batch marking. Pause times unaffected. Mips64 is untested but might work, maybe. Before: MarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us After: MarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us Bug: 19264997 Change-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca
|
ca71458862be8505330b7fd5649a062f31d143dc |
|
04-Apr-2015 |
Andreas Gampe <agampe@google.com> |
ART: Add Clang's -Wused-but-marked-unused Add detection of wrong unused annotations. Fix our codebase. Change-Id: I85cc20f2eac71c1ec6c5c7cd6efb08454a629634
|
461687d898dfd91253f242072849a9fe43e5f523 |
|
31-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Visit image roots for hprof Bug: 19995360 (cherry picked from commit 0cab5e68f14ee403380664146db6dc7ddfc32064) Change-Id: I17868bff2a701dc25291d41b9732c6b86f92be08
|
0cab5e68f14ee403380664146db6dc7ddfc32064 |
|
31-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Visit image roots for hprof Bug: 19995360 Change-Id: I1f2989c8bccf508b1d47dfd0d7aee4c7bb275b56
|
bf9fc581e8870faddbd320a935f9a627da724c48 |
|
14-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Add more info to who called SuspendAll Helps diagnose related jank. Change-Id: I38191cdda723c6f0355d0197c494a3dff2b6653c
|
15f345cdfaebe480de6387b67d4be4eb5f106870 |
|
06-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Fix failing hprof DCHECK Benign. Bug: 19627999 Change-Id: I20f3d36ffa1efaf23b40b6290c042df81eca2fea
|
ff38c04b88e86bffdd520bc1863d05334ada6c94 |
|
06-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Fix byte and char Get32 8 bit and 16 bit fields aren't necessarily 32 bit aligned due to field packing. This was causing SIGBUS for hprof dumping some apps. Bug: 19627999 (cherry picked from commit 2ff8da6a4d44bcf6a72dca1b5294a72297c5ce26) Change-Id: If549412fc4d62c55bb6a46f11658fc60b822a27e
|
2ff8da6a4d44bcf6a72dca1b5294a72297c5ce26 |
|
06-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Fix byte and char Get32 8 bit and 16 bit fields aren't necessarily 32 bit aligned due to field packing. This was causing SIGBUS for hprof dumping some apps. Bug: 19627999 Change-Id: Ifd68b281b2a23b9ed3c6f8780c99870643366c7e
|
2cd334ae2d4287216523882f0d298cf3901b7ab1 |
|
09-Jan-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
More of the concurrent copying collector. Bug: 12687968 Change-Id: I62f70274d47df6d6cab714df95c518b750ce3105
|
0c8c303c20cdaaf54d26e45cc17dc5afb820d8ef |
|
17-Jan-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Clean up the locks around Heap::VisitObjects(). This is so that we could support suspending all threads when visiting objects in the presence of a concurrent, moving collector. Bug: 12687968 Change-Id: Icc8e60630465afde948ebc6ea91d4ebaff5d7837
|
e34fa1df67fbe0173b4ea9abddcc3ae3d0537037 |
|
14-Jan-2015 |
Mathieu Chartier <mathieuc@google.com> |
Print more info in MarkSweep::VerifyRoot Refactored old root callback to use a new class called RootInfo. RootInfo contains all the relevant info related to the root associated with the callback. The MarkSweep::VerifyRoot function now uses this info to print the StackVisitor's described location if the GC root is of the type kRootJavaFrame. Some other cleanup. Example output: E/art (12167): Tried to mark 0x123 not contained by any spaces E/art (12167): Attempting see if it's a bad root E/art (12167): Found invalid root: 0x123 with type RootJavaFrame E/art (12167): Location=Visiting method 'void java.lang.Runtime.gc()' at dex PC 0xffffffff (native PC 0x0) vreg=0 (cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a) Bug: 18588862 Change-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f
|
12f7423a2bb4bfab76700d84eb6d4338d211983a |
|
14-Jan-2015 |
Mathieu Chartier <mathieuc@google.com> |
Print more info in MarkSweep::VerifyRoot Refactored old root callback to use a new class called RootInfo. RootInfo contains all the relevant info related to the root associated with the callback. The MarkSweep::VerifyRoot function now uses this info to print the StackVisitor's described location if the GC root is of the type kRootJavaFrame. Some other cleanup. Example output: E/art (12167): Tried to mark 0x123 not contained by any spaces E/art (12167): Attempting see if it's a bad root E/art (12167): Found invalid root: 0x123 with type RootJavaFrame E/art (12167): Location=Visiting method 'void java.lang.Runtime.gc()' at dex PC 0xffffffff (native PC 0x0) vreg=0 Bug: 18588862 Change-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f
|
3a91309c30a7575776526ffe6e9a46dc648a59fe |
|
10-Jan-2015 |
Andreas Gampe <agampe@google.com> |
ART: Hprof cleanup Refactor things a bit to make it easier to stream. Add a simple test that dumps the heap and runs hprov-conf on it. Change-Id: I79a9ad37d4cf41fa8d63d039586aa80394d96005
|
ad466adf38db74a9840659626858196091151a64 |
|
09-Jan-2015 |
Mathieu Chartier <mathieuc@google.com> |
Change hprof to use streaming Previously, we compute the whole hprof dump in memory resulting in > 50MB of memory usage for some apps (such as maps). This could cause the app to get killed by the low memory killer. The solution works by doing the dump in 2 passes. The first pass calculates the size of the dump. The second pass starts by sending the DDMS header with the correct size, then does the rest of the hprof dump by streaming and sending data one HprofRecord at a time. Bug: 18921793 Change-Id: I7dd9f5cfe49799ba268095c994a8c2eb1fe493df
|
4303ba97313458491e038d78efa041d41cf7bb43 |
|
06-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: Track Flush & Close in FdFile Implement a check that aborts when a file hasn't been explicitly flushed and closed when it is destructed. Add WARN_UNUSED to FdFile methods. Update dex2oat, patchoat, scoped_flock and some gtests to pass with this. (cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494) Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
|
9433ec60b325b708b9fa87e699ab4a6565741494 |
|
06-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: Track Flush & Close in FdFile Implement a check that aborts when a file hasn't been explicitly flushed and closed when it is destructed. Add WARN_UNUSED to FdFile methods. Update dex2oat, patchoat, scoped_flock and some gtests to pass with this. Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
|
575e78c41ece0dec969d31f46be563d4eb7ae43b |
|
04-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: Replace COMPILE_ASSERT with static_assert (runtime) Replace all occurrences of COMPILE_ASSERT in the runtime tree. Change-Id: I01e420899c760094fb342cc6cb9e692dd670a0b2
|
fc787ecd91127b2c8458afd94e5148e2ae51a1f5 |
|
10-Oct-2014 |
Ian Rogers <irogers@google.com> |
Enable -Wimplicit-fallthrough. Falling through switch cases on a clang build must now annotate the fallthrough with the FALLTHROUGH_INTENDED macro. Bug: 17731372 Change-Id: I836451cd5f96b01d1ababdbf9eef677fe8fa8324
|
ae1ad009f7e531aaf95ffbc080a4ad8769c1d4d0 |
|
19-Jul-2014 |
Mathieu Chartier <mathieuc@google.com> |
Add detection of zygote vs app vs image objects in hprof Bug: 16406673 Change-Id: Ic3e4a809c00b8379e42b074f9032ac106138be67
|
3280517651195602253ed92a2749964e96cad27e |
|
04-Jul-2014 |
Calin Juravle <calin@google.com> |
Fix identifier size in the heap dump. We're using addresses as IDs and previously we would have written sizeof(void*) as the identifier size in the header. Heap references are actually uint32_t so writting 4 bytes should be enough. Bug: 16016862 Change-Id: I785abf5030681b6009370b7b2d7552e8b4b54e67
|
ccc68d692c5d6ad54cb74163b8930182f9c87d3c |
|
04-Jul-2014 |
Calin Juravle <calin@google.com> |
Fix identifier size in the heap dump. We're using addresses as IDs and previously we would have written sizeof(void*) as the identifier size in the header. Heap references are actually uint32_t so writting 4 bytes should be enough. Bug: 16016862 (cherry picked from commit 3280517651195602253ed92a2749964e96cad27e) Change-Id: I8b8a0f8d761314139ba01a8bc91c1a3db35b8ae9
|
22d5e735f403c57525fe868304c7123f0ce66399 |
|
16-Jul-2014 |
Ian Rogers <irogers@google.com> |
Remove object_utils.h. Break into object_lock, field_helper and method_helper. Clean up header files following this. Also tidy some of the Handle code in response to compiler errors when resolving the changes in this CL. Change-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295
|
61c5ebc6aee2cac1c363de6fbdac25ada1697fdb |
|
06-Jun-2014 |
Mathieu Chartier <mathieuc@google.com> |
Change FieldHelper to use a handle. Fixed compaction bugs related to FieldHelper::GetType in: artSet32InstanceFromCode SetFieldValueImpl CheckReceiver Field_set interpreter::DoFieldPut MethodVerifier::VerifyISGet MethodVerifier::VerifyISPut MethodVerifier::VerifyIGetQuick Bug: 13077697 Change-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72
|
700a402244a1a423da4f3ba8032459f4b65fa18f |
|
20-May-2014 |
Ian Rogers <irogers@google.com> |
Now we have a proper C++ library, use std::unique_ptr. Also remove the Android.libcxx.mk and other bits of stlport compatibility mechanics. Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
|
893263b7d5bc2ca43a91ecb8071867f5134fc60a |
|
04-Mar-2014 |
Mathieu Chartier <mathieuc@google.com> |
Avoid marking old class linker and intern table roots during pause. The new root visiting logic has a concept of a root log which holds new roots which were added since the start of the GC. This is an optimization since it lets us only mark these newly added roots during the pause (or pre-cleaning) since the other roots intern table and class linker roots were marked concurrently at the start of the GC. Before (EvaluateAndApplyChanges): MarkConcurrentRoots: Sum: 605.193ms After: MarkConcurrentRoots: Sum: 271.858ms This should also reduce pathological GC pauses which used to be able to happen when the intern table or class linker became "dirty" during the concurrent GC. Change-Id: I433fab021f2c339d50c35aaae7161a50a0901dec
|
815873ecc312b1d231acce71e1a16f42cdaf09f2 |
|
14-Feb-2014 |
Mathieu Chartier <mathieuc@google.com> |
Change root visitor to use Object**. Simplifies code and improves the performance of root visiting since we usually don't need to check to see if the object moved. Change-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf
|
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
|
ef7d42fca18c16fbaf103822ad16f23246e2905d |
|
06-Jan-2014 |
Ian Rogers <irogers@google.com> |
Object model changes to support 64bit. Modify mirror objects so that references between them use an ObjectReference value type rather than an Object* so that functionality to compress larger references can be captured in the ObjectRefererence implementation. ObjectReferences are 32bit and all other aspects of object layout remain as they are currently. Expand fields in objects holding pointers so they can hold 64bit pointers. Its expected the size of these will come down by improving where we hold compiler meta-data. Stub out x86_64 architecture specific runtime implementation. Modify OutputStream so that reads and writes are of unsigned quantities. Make the use of portable or quick code more explicit. Templatize AtomicInteger to support more than just int32_t as a type. Add missing, and fix issues relating to, missing annotalysis information on the mutator lock. Refactor and share implementations for array copy between System and uses elsewhere in the runtime. Fix numerous 64bit build issues. Change-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822
|
e9c36b34efb7460f59c6766e526c9b0de8da70b3 |
|
21-Nov-2013 |
Vladimir Marko <vmarko@google.com> |
Avoid some string allocations. Also avoid building a string one character at a time. Change-Id: I3db26226c620a730b95637d5bfc23e2d4715cfb9
|
423d2a3dcbb260b020efb5da59f784c9f02accbf |
|
13-Sep-2013 |
Mathieu Chartier <mathieuc@google.com> |
Add support for changing roots through the root visitor callback. Needed for copying collectors. Change-Id: Icc4a342a57e0cfb79587edb02ef8c85e08808877
|
ea46f950e7a51585db293cd7f047de190a482414 |
|
30-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Refactor java.lang.reflect implementation Cherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1. Move to ArtMethod/Field instead of AbstractMethod/Field and have java.lang.reflect APIs delegate to ArtMethod/ArtField. Bug: 10014286. Change-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7
|
7934ac288acfb2552bb0b06ec1f61e5820d924a4 |
|
26-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Fix cpplint whitespace/comments issues Change-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496
|
2d88862f0752a7a0e65145b088f49dabd49d4284 |
|
19-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Fixing cpplint readability/casting issues Change-Id: I6821da0e23737995a9b884a04e9b63fac640cd05
|
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
|