Commit Graph

24 Commits

Author SHA1 Message Date
koda@google.com d4481420e0 Copy-on-write class table for concurrent reading.
Make ClassTable::At thread safe by keeping old copies of the class table.
They can be safely deallocated during the stop-the-world phase of GC.

This avoids making a copy for every sweeper task, and is the first step towards removing the fake Isolate workaround.

R=iposva@google.com

Review URL: https://codereview.chromium.org//816773005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43048 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-21 18:13:12 +00:00
koda@google.com f0959282a3 Fix build (make Verify public).
R=zra@google.com
TBR=zra@google.com

Review URL: https://codereview.chromium.org//744643003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41866 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 20:18:02 +00:00
koda@google.com f346d2ec7a Fix allocation stats bug on ARM; add unit test.
Also add sanity checks to ClassHeapStats.
Array allocation stub was using an address instead of a size for the allocation size.

R=zra@google.com

Review URL: https://codereview.chromium.org//747463002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41862 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 19:20:17 +00:00
fschneider@google.com 855541d88e Make subtype test stubs isolate-specific.
This avoids loading the current isolate from the context
register and makes those stubs not depend on having the context
stored in the CTX register.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//605533003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40714 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-26 16:06:30 +00:00
iposva@google.com 2ee3263277 - Add and enable concurrent sweeper.
- Keep separate lists for normal sized executable and data pages.

R=koda@google.com

Review URL: https://codereview.chromium.org//503363005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39593 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 13:37:55 +00:00
koda@google.com 015211b474 Track per-class promotion stats.
This will be useful for allocation policy and heap growth policy.

Also include these stats in the VM service.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//487973002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39415 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 17:57:12 +00:00
koda@google.com bd979f84d5 Send allocation stats with each class and show in class view.
For each class, if there are any allocations, shows current number of instances, shallow size, and the already existing link for retained size.

Also refactor code in ClassTable to reduce duplication.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//345543003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37566 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 20:17:42 +00:00
turnidge@google.com 9243ffc4ff Always use the same json for null in the vm service.
PrintToJSONStream -> PrintJSON.

ALSO:

Fix <em> tags in the Observatory.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//257053003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35532 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-29 18:10:02 +00:00
koda@google.com 00ae3f7848 Fix accumulated size stats for fixed-size instances.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//249843003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35321 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 18:17:03 +00:00
koda@google.com 9a8671276b Add class and address information to heap map; display on hover.
Display a string like "String @ 0xe97c3328" while hovering over the map.

Also add page separators (black).

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//204103009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34195 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 18:56:45 +00:00
asiva@google.com a01ab16991 1. When reading a full snapshot use the class id from the snapshot instead
of generating a new one. This ensures that assumptions made about the
   class id when generating a snapshot will still hold in the version that
   runs from a snapshot.

2. remove ObjectHistogram code as it is not used anymore and has been replaced
   by VM service.

R=johnmccutchan@google.com, regis@google.com

Review URL: https://codereview.chromium.org//187133004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33340 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-05 19:24:02 +00:00
johnmccutchan@google.com 0f79171efb Add user resetable accumulator to allocation profiler.
Display aggregate of new and old space in a separate table.
Speed up display of tables by 10x.
Fix heap display bug (heap stats were always for new space).
Keep sort across refreshes.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//173013004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33220 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-03 15:39:06 +00:00
johnmccutchan@google.com 9ca09b50e7 Track live instance and allocation counts for classes.
R=iposva@google.com

Review URL: https://codereview.chromium.org//51653006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31978 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-22 19:21:22 +00:00
johnmccutchan@google.com c86bdc5bcf Expose field data, use class id, and merge all collections into "objects"
R=asiva@google.com

Review URL: https://codereview.chromium.org//24075002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27684 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 00:59:42 +00:00
iposva@google.com 9eab35b19c - Remove redundant include of platform/globals.h.
Review URL: https://codereview.chromium.org//14367034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21860 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-23 06:55:17 +00:00
srdjan@google.com d5ad183f5b Add --use_cha (default true, switch to false if you use dynamic class loading). Use CHA to specify receiver class if no subclasses of the receiver exist, eliminate check class computation.
Remove all optimized code whenever we load scripts/libraries/snapshots. Currently this occurs only when no Dart frame is live on stack. Future change (deoptimization) will allow dynamic class loading in presence of live Dart frames.
The cost of removing all optimized code is supposed to be low. If that assumptions turns out to be false I can add more elaborate tracking of optimized functions.
Review URL: https://chromiumcodereview.appspot.com//10825483

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11106 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 22:31:49 +00:00
regis@google.com 3790edb5e1 Move class hierarchy analysis to its own source.
Review URL: https://chromiumcodereview.appspot.com//10827450

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11097 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 21:09:28 +00:00
regis@google.com 34a5754f3e Add HasSubclasses function to class hierarchy analysis.
Review URL: https://chromiumcodereview.appspot.com//10829446

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11008 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 00:16:46 +00:00
regis@google.com fea5f83714 Implement class hierarchy analysis in the VM.
Add test.
Review URL: https://chromiumcodereview.appspot.com//10828399

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11006 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-20 23:38:09 +00:00
vegorov@google.com 858b6d53e1 In generated code for ia32 don't load object's class directly from class_ field.
Instead look it up in class table by class index taken from object's tags.

Review URL: https://chromiumcodereview.appspot.com//10447064

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8101 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 12:25:49 +00:00
hausner@google.com b00ae2d1a0 Introduce remote objects in Debugger protocol
Review URL: https://chromiumcodereview.appspot.com//10407071

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7864 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:06:34 +00:00
iposva@google.com a59c00c448 - Grow the class table as needed instead of preallocating.
Review URL: https://chromiumcodereview.appspot.com//10311006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7235 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 13:22:02 +00:00
iposva@google.com 3b2781bbc8 - Increase number of classes possible.
Review URL: https://chromiumcodereview.appspot.com//10269026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7186 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 12:54:49 +00:00
iposva@google.com d8c7c1ada6 - Add a class index to the classes.
- Add a class table which assigns individual ids to classes.
Review URL: https://chromiumcodereview.appspot.com//9965042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7183 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 09:20:40 +00:00