tball@google.com
9146f935d9
Added heap capacity and used space status methods, for use by status tools.
...
Review URL: https://codereview.chromium.org//11973035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17235 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-17 21:06:59 +00:00
asiva@google.com
92dee42dcc
Do not emit pointer information for embedded singleton VM Isolate objects while generating code. These embedded objects do not need to be visited during GC.
...
Review URL: https://codereview.chromium.org//11722026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16645 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-04 18:38:00 +00:00
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
cshapiro@google.com
49f6f9f36d
Merge the Merlin heap tracing to top-of-trunk.
...
Review URL: https://codereview.chromium.org//11428067
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16199 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-15 19:58:45 +00:00
cshapiro@google.com
a7675e8dd3
Provide a mechanism for dumping of heap profiles on predefined events.
...
Review URL: https://codereview.chromium.org//11478012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15940 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-11 00:50:31 +00:00
cshapiro@google.com
f5c4d7a381
Unify specification of file open, close, and write callbacks.
...
Review URL: https://codereview.chromium.org//11442024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15807 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-06 21:56:31 +00:00
cshapiro@google.com
b477e4dec2
Fail new space promotions only when old space is truly exhausted.
...
Review URL: https://codereview.chromium.org//11363226
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14935 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-15 01:05:48 +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
srdjan@google.com
844f18a3eb
Enable inlining of control flow, increase code heap size 12 -> 18Mb (note that code will be moved to old space where it can grow). Print heap size at exit of VM using trace-isolates.
...
Code heap increase because of inline-control-flow (dart2js):
production mode: 4,143k -> 5,143k
checked mode: 10,789k -> 14,545k
Review URL: https://codereview.chromium.org//11035009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13085 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 20:24:23 +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
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
iposva@google.com
b21d7c16f6
- Tighten assertions around store buffers.
...
- Use the correct object when filtering in store barriers.
Review URL: https://chromiumcodereview.appspot.com//10796075
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9797 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-21 01:08:14 +00:00
asiva@google.com
7ba3fa9503
Invoke 'Scavenge' in the weak handle processing unit tests and not 'CollectGarbage' in order to avoid triggering of old space mark sweep in certain situations.
...
Review URL: https://chromiumcodereview.appspot.com//10748006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9535 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-10 23:03:07 +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
iposva@google.com
541a166410
- Premark vm_isolate objects to avoid having to test for them
...
during marking.
Review URL: https://chromiumcodereview.appspot.com//10675010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9143 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 00:08:03 +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
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
c1b1f8cd6e
- Bump the code heap size to avoid running out during testing.
...
Review URL: https://chromiumcodereview.appspot.com//10450020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7957 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 18:11:21 +00:00
asiva@google.com
d373e34a00
Trace heap size during initialization after reading the snapshot.
...
Review URL: https://chromiumcodereview.appspot.com//10414048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7887 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 00:17:07 +00:00
asiva@google.com
bd1b6021a4
Revert code heap size back to 8MB and fix the benchmark invocation to set the code heap size for benchmark runs to 10MB so that the compile all run of dart2js will be fine.
...
Review URL: https://chromiumcodereview.appspot.com//10332296
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7868 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:35:48 +00:00
srdjan@google.com
8c56dddebe
Temporary raise code heap size 8Mb -> 10Mb until compile all in checked mode explicitly increases it.
...
Review URL: https://chromiumcodereview.appspot.com//10388223
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7839 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 01:29:37 +00:00
asiva@google.com
c483079e45
Remove the special stub code region as we don't need it anymore. With the new frame layout convention we can find the first dart frame quickly.
...
Review URL: https://chromiumcodereview.appspot.com//10409038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7778 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 23:28:34 +00:00
asiva@google.com
09adb99a85
Add a stub_code_space in the heap alongside code_space so that stub code generation happens here and it is easy to determine if a PC is a stub code or not.
...
This gets rid of the temporary change made in code_generator.cc for fast access to the top dart frame. In addition it will not pollute the pc ==> code cache that I plan to add next as we don't have to store stub pcs in that table.
Review URL: https://chromiumcodereview.appspot.com//10223015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7033 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 18:00:53 +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
sgjesse@google.com
bf67f24098
Move assert.h/assert.cc from runtime/vm to runtime/platform
...
The purpose of this change is twofold:
1. Source in the bin directory can now use the same assertions as
source in the vm directory. The ASSERT macro used by the code
in runtime/bin was just defined to use assert from the standard
C library.
2. Moving other implementation parts from runtime/vm to
runtime/platform (e.g. classes Monitor and Mutex) for sharing
between runtime/bin and runtime/vm will be easier as these
implementations rely on these assertion macros.
Created two gypi files for the platform directory. One for the
headers and one for the source. The source one is only included
when building the VM library and will be present in libdart.a
when the dart executable is linked.
All the code for asserts is still in the dart namespace.
Also re-arranged the order of includes to be alphabetically in
the files touched.
R=ager@google.com , iposva@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//9189003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3335 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-16 12:28:10 +00:00
iposva@google.com
54bf6eceb2
- Bump the code heap to avoid running out when running with compile all and
...
the DOM/HTML libraries.
Review URL: http://codereview.chromium.org//9116029
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3020 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-06 00:13:58 +00:00
iposva@google.com
39714313b3
- Return 0 in the unreachable case.
...
Review URL: http://codereview.chromium.org//9022025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2797 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-23 00:31:17 +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
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
asiva@google.com
5cf3ad018a
Changes to pass the current isolate to all runtime and native calls.
...
Review URL: http://codereview.chromium.org//8528010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1499 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-12 05:55:22 +00:00
asiva@google.com
5db460f310
Add command line options to specify the various heap size parameters.
...
Review URL: http://codereview.chromium.org//8423023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1059 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-02 00:48:33 +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