iposva@google.com
3e367a12d8
- Consolidate verbose-gc output to be a single line which can be imported easily into spreadsheets.
...
Review URL: https://codereview.chromium.org//11734028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16624 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-04 02:15:36 +00:00
iposva@google.com
391cefa02e
- Consider the growth policy even when allocating large pages.
...
Review URL: https://codereview.chromium.org//11434056
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16267 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 17:45:55 +00:00
iposva@google.com
dc2c8b3707
- Consolidate code into the old generation.
...
- Record pointers between code objects.
- Collect unreferenced code objects.
Review URL: https://codereview.chromium.org//11265026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14113 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 23:46:01 +00:00
iposva@google.com
5e9f303d5d
- Do not bump allocate in old-space pages. Always use
...
the freelist in preparation for chunked allocation.
Review URL: https://codereview.chromium.org//11186013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13792 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 17:40:12 +00:00
cshapiro@google.com
40604757dc
Lazy peer API.
...
This change provides getters and setters for a lazily allocated field
associated with every heap allocated object. It is a generalization
of the peer field of external string instances, external byte array
instances, and the smrck field of closure instances.
Review URL: https://chromiumcodereview.appspot.com//10905251
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12511 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-18 21:15:46 +00:00
cshapiro@google.com
0265cf8b9e
Report the reason for a garbage collection when verbose GC is enabled.
...
Review URL: https://chromiumcodereview.appspot.com//10872074
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11485 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-29 00:49:14 +00:00
cshapiro@google.com
16b554d4d0
Increase the page space growth rate when there is insufficient free space.
...
Review URL: https://chromiumcodereview.appspot.com//10876095
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11429 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-28 02:32:55 +00:00
iposva@google.com
d68bf3be66
- Add the ability to protect VirtualMemory.
...
- Write protect the VM isolate once it has been constructed.
Review URL: https://chromiumcodereview.appspot.com//10830045
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9984 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-27 18:07:59 +00:00
cshapiro@google.com
0928c651e5
Implement a 2-pass heap verification algorithm.
...
The previous algorithm would visit each pointer in the heap and verify it
without regard for whether the pointer had already been visited.
The new algorithm computes the set of allocated objects and verifies each
object in the set. In a second pass, each pointer is visited and tested
for membership in the set.
BUG=2606
Review URL: https://chromiumcodereview.appspot.com//10696029
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9532 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-10 22:07:40 +00:00
cshapiro@google.com
18381ac8d5
Log growth policy decisions when verbose gc is enabled.
...
This change also rationalizes some use of signed and unsigned types and
corrects the use of time values recorded for analysis.
BUG=3535
Review URL: https://chromiumcodereview.appspot.com//10576004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9045 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 21:17:38 +00:00
cshapiro@google.com
dcaf11db96
Implement a heap profiler for the Dart managed heap.
...
This profiler will write binary HPROF data to a user provided stream that
can later be viewed by tools such as the Eclipse Memory Analyzer.
While all user defined types are accurately described in the profile data,
internal types that are not self-describing appear as empty objects. This
will be addressed by a future change.
Review URL: https://chromiumcodereview.appspot.com//10452006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8636 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 00:08:07 +00:00
cshapiro@google.com
76f0099233
Force growth when retrying an old-space allocation.
...
Review URL: https://chromiumcodereview.appspot.com//10458072
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8411 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-07 22:29:09 +00:00
cshapiro@google.com
b43a525cdb
Implement growth policy for old space using time and space signals.
...
Review URL: https://chromiumcodereview.appspot.com//10442073
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8136 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 02:49:56 +00:00
iposva@google.com
5c7499c4fe
- Add more information to --verbose-gc.
...
Review URL: https://chromiumcodereview.appspot.com//10414069
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7890 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 03:29:00 +00:00
vegorov@google.com
aad59d6edb
Reland r6578 without changing the order of pages in the PageSpace::pages_ list.
...
Linking newly allocated pages into the list's head causes popular pages to move further to the end of the list. This causes slowdown on the debug VM because method PageSpace::Contains has to do more probes for popular objects.
R=iposva@google.com
BUG=2660
Review URL: https://chromiumcodereview.appspot.com//10191014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6940 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 13:37:51 +00:00
kasperl@google.com
62d7b405c0
Revert "- Free completely empty pages as part of sweep."
...
This reverts r6578.
TBR'ed (discussed over chat).
R=iposva@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10167005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6792 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-20 12:14:31 +00:00
iposva@google.com
926d554112
- Free completely empty pages as part of sweep.
...
Review URL: https://chromiumcodereview.appspot.com//10093010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6578 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-16 14:25:00 +00:00
iposva@google.com
85b2b6f32a
- Use the free top of old-space pages when allocating.
...
Review URL: https://chromiumcodereview.appspot.com//10057001
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6405 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-11 11:54:01 +00:00
asiva@google.com
2d3775a1b1
Resubmit change 6302 after fixing the compiler warning on older GCC compiler versions:
...
Change 6302 description:
- Wire the stack frame iterator to use stack maps for traversing objects if
there are stack maps in the code object. If there are no stack maps it still
does the old style stack frame traversal between fp and sp looking for tagged
pointers.
- Added a mechanism to be able to iterate over the code space and look for a
particular object.
Review URL: https://chromiumcodereview.appspot.com//10030001
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6331 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-09 18:20:23 +00:00
asiva@google.com
c79da818cc
Revert change 6302 until the compiler warning is addressed.
...
Review URL: https://chromiumcodereview.appspot.com//10025003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6304 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-07 02:04:28 +00:00
asiva@google.com
c27cec5b6e
- Wire the stack frame iterator to use stack maps for traversing objects if there are stack maps in the code object. If there are no stack maps it still does the old style stack frame traversal between fp and sp looking for tagged pointers.
...
- Added a mechanism to be able to iterate over the code space and look for a particular object.
- Remove registration of code objects into the code index table.
Review URL: https://chromiumcodereview.appspot.com//9791048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6302 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-07 01:44:48 +00:00
cshapiro@google.com
f4c5dd4db3
Implement prologue weak persistent handles.
...
Prologue weak persistent handles are similar to weak persistent
handles but exhibit different behavior during garbage collections that
invoke the prologue and epilogue callbacks. While weak persistent
handles always weakly reference their referents, prologue weak
persistent handles weakly reference their referents only during a
garbage collection occurs that invokes the prologue and epilogue
callbacks. During all other garbage collections, prologue weak
persistent handles strongly reference their referents.
Review URL: https://chromiumcodereview.appspot.com//9655011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5445 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 23:41:59 +00:00
iposva@google.com
7d5e5ec8a2
- Promote objects from new gen to old space if they survived a scavenge.
...
- Properly initialize the tags in intrinsified allocation.
- Check for valid tag bits.
Review URL: http://codereview.chromium.org//9027017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2796 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-23 00:14:05 +00:00
iposva@google.com
0d25bce528
- Trigger old-gen GCs when needed.
...
- Sweep large pages.
- Handle free list elements when calculating sizes.
Review URL: http://codereview.chromium.org//8996011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2593 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-19 19:29:10 +00:00
iposva@google.com
169dcfb5ff
- Honor max_capacity even for large page allocation.
...
Review URL: http://codereview.chromium.org//8962006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2555 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-16 23:40:41 +00:00
iposva@google.com
5e1e9534db
- Implement the old sweeper.
...
Review URL: http://codereview.chromium.org//8898034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2485 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-15 22:37:35 +00:00
iposva@google.com
3117f4cbfc
- Implement a simple old-generation marker.
...
Review URL: http://codereview.chromium.org//8761006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1962 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 02:11:40 +00:00
dgrove@google.com
4c0f559d23
Initial checkin.
...
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00