Commit Graph

76 Commits

Author SHA1 Message Date
Liam Appelbe e4196ce8c6 [vm] Namespace constants like offsets and sizeofs to use runtime_api.h
Second sub-CL of https://dart-review.googlesource.com/c/sdk/+/100644
The first was here https://dart-review.googlesource.com/c/sdk/+/103487

Now that offsets_extractor is checked in, and we have a big header full
of hard coded constants, the next step is to make sure everything is
using those constants. This is essentially everything in the original
CL, except the new simarm_x64 architecture.

Bug: https://github.com/dart-lang/sdk/issues/36839
Change-Id: I236e4f30aa1df6d92209891c983b792d1835b608
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104286
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-06-10 02:55:25 +00:00
Ryan Macnak 90c757c766 [vm, interpreter] Allocation fast paths.
Bug: https://github.com/dart-lang/sdk/issues/36410
Change-Id: If753e60ac70f7c016e1caa3b296378d3ebc0a91c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/87267
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-04-05 22:37:58 +00:00
Ryan Macnak 565e56dba6 [vm] Reduce cost of allocation tracing.
Remove separate table for predefined classes. The original allocation stats CL had this separate to allow directly embedding the table address into code, but we no longer embed addresses to support AppAOT and AppJIT.

Change-Id: Ida3d0764ac8ff179c0541ee73a3283c9c50affab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97286
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-03-19 22:46:59 +00:00
Ryan Macnak a3ab6b6514 [vm, gc] Reduce cost of maintaining allocation stats during scavenges.
Change-Id: If44fe99c87b96f4f370efb3716009e230b5c4f25
Reviewed-on: https://dart-review.googlesource.com/c/94583
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-02-27 22:01:00 +00:00
Ryan Macnak dc2422ef84 [vm, gc] Fix accounting of external sizes in the class table.
- Reset both new and old external sizes for both new and old space GC. Every GC visits weak handles for both generations.
 - Don't double count external old size during promotion.

Change-Id: Ic6ad1b4cad58ad18637cee974b170a2eab8afe29
Reviewed-on: https://dart-review.googlesource.com/c/93881
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-02-21 01:27:29 +00:00
Ryan Macnak 3afac84840 [vm, aot] Remove KernelProgramInfo etc before Symbols::Compact.
Eliminates some symbols that were memory-reachable but not snapshot-reachable.

Compact the canonical type and type arguments tables along with the symbol table.


flutter_gallery, Android release
Total(CodeSize): 11158045 -> 11055480 (-0.92%)

Change-Id: I63bd1353906ea66c6f82a932cff57f7c25331200
Reviewed-on: https://dart-review.googlesource.com/c/92221
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-02-08 17:16:26 +00:00
Ryan Macnak 93dcfaa289 [vm, gc] Concurrent marking.
Fall back to parallel marking
 - on IA32 (barrier unimplemented)
 - when write_protect_code is enabled (protection dependency on marking state unimplemented)

Bug: https://github.com/dart-lang/sdk/issues/34002
Change-Id: If093f24e4dc6bf29f407cc45e95bb2274fc53dcf
Reviewed-on: https://dart-review.googlesource.com/71389
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-09-21 21:30:33 +00:00
Ryan Macnak 8da46d35f5 [vm] Move heap-related code to its own subdirectory (cf. compiler).
Remove some dead includes.

Change-Id: I31f3e739e5ee46dcbba5d6a2f091491b46402943
Reviewed-on: https://dart-review.googlesource.com/60146
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-06-20 00:39:49 +00:00
Ryan Macnak 9b5a931b06 [vm] Replace most runtime/vm uses of OS::Print with OS::PrintErr.
Leave --print-snapshot-sizes on stdout because it is parsed by Flutter benchmarks.

Replace all runtime/bin uses of OS::Print with Log::Print.

Bug: https://github.com/dart-lang/sdk/issues/32134
Change-Id: I74aacfb410cdfa9270d06e7f6ab0534520c7c7ba
Reviewed-on: https://dart-review.googlesource.com/60021
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-06-13 19:51:40 +00:00
Erik Corry c8ad75d44a [VM] Make classes movable in sliding compactor
Store class sizes off heap so we can determine the size
of their instances even while the classes are moving.

R=rmacnak@google.com

Change-Id: I7b935114f76eb8b6aaa57d65e5b7cc0070afa75f
Bug: https://github.com/dart-lang/sdk/issues/30978
Reviewed-on: https://dart-review.googlesource.com/52104
Commit-Queue: Erik Corry <erikcorry@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-04-26 09:38:25 +00:00
Ryan Macnak d9c3190e44 [vm] Remove some bin -> vm includes.
Change-Id: Id304de9618a299a201b946a901a54352772f56fb
Reviewed-on: https://dart-review.googlesource.com/48704
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-03-28 23:16:09 +00:00
Martin Kustermann cf8a6063f8 [VM] Improve AssertAssignable/InstanceOf by having a fast case for non-generic, instantiated types
When the type to test against is instantiated and has no type arguments
there is a high probability that we receive instances of that class or
subclasses at runtime.

This CL therefore extends the fast-path of AssertAssignable/InstanceOf
by checking whether the instance class id is within the cid ranges that
directly/indirectly implement/extend the type to test against.

Currently we have an almost depth-first preorder numbering of class ids
in AOT, but there are exceptions.  So each class can have a number of
cid-ranges as subclasses / classes which implement it's interface.

This seems to improve performance of dart-aot-v2
  * flutter stock build by 15+%
  * DeltaBlueClosures by 10+%

and reduces code size on
  * flutter gallery by -3%

Issue https://github.com/dart-lang/sdk/issues/31798

Change-Id: I07dd91589cc3fcd8c5952bdba339e2e2a459e08e
Reviewed-on: https://dart-review.googlesource.com/35620
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-25 07:13:42 +00:00
Ryan Macnak b0f203db19 [vm-service] Include external sizes in the allocation table.
Bug: https://github.com/dart-lang/sdk/issues/30380
Change-Id: Ieec5adf13548b73bac886816d4a2174de7585880
Reviewed-on: https://dart-review.googlesource.com/7685
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Todd Turnidge <turnidge@google.com>
2017-09-25 18:33:07 +00:00
Régis Crelier b3a7dd6e9d [VM generic function reification] Support generic functions in Invocation class.
Make VM object TypeArguments a Dart instance.
Add a test verifying that noSuchMethod works with generic functions.

R=floitsch@google.com, rmacnak@google.com

Review-Url: https://codereview.chromium.org/3007603002 .
2017-08-28 17:00:39 -07:00
Ryan Macnak 466385ceb6 [vm, gc] Require a safepoint for heap iteration.
Assert a safepoint operation can only be started from a thread in the VM state. Fix several unit tests missing a native-to-vm transition.

R=asiva@google.com, danunez@google.com

Review-Url: https://codereview.chromium.org/2995543004 .
2017-08-07 17:51:25 -07:00
Zachary Anderson 6cd8a79078 VM: Re-format to use at most one newline between functions
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2974233002 .
2017-07-13 08:08:37 -07:00
Erik Corry c6a199e40b Sort class IDs before training AppJIT snapshots
R=fschneider@google.com, rmacnak@google.com
BUG=

Review-Url: https://codereview.chromium.org/2699853002 .
2017-02-20 12:14:17 +01:00
Siva Annamalai d77809e15f Fix the following tsan errors:
1. Race updating the allocation stats for a class
WARNING: ThreadSanitizer: data race (pid=16346)
  Write of size 8 at 0x7bac00011930 by thread T4:
    #0 dart::AllocStats<long>::AddOld(long, long) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/class_table.h:56 (dart+0x000000769278)
    #1 dart::ClassTable::UpdateAllocatedOld(long, long) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/class_table.cc:423 (dart+0x00000076923a)
    #2 dart::Object::Allocate(long, long, dart::Heap::Space) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:1880 (dart+0x00000092ddff)
    #3 dart::Array::New(long, long, dart::Heap::Space) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:21586 (dart+0x00000098d3fd)

  Previous write of size 8 at 0x7bac00011930 by thread T3:
    #0 dart::AllocStats<long>::AddOld(long, long) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/class_table.h:56 (dart+0x000000769278)
    #1 dart::ClassTable::UpdateAllocatedOld(long, long) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/class_table.cc:423 (dart+0x00000076923a)
    #2 dart::Object::Allocate(long, long, dart::Heap::Space) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:1880 (dart+0x00000092ddff)
    #3 dart::Array::New(long, long, dart::Heap::Space) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:21586 (dart+0x00000098d3fd)
    #4 dart::Array::New(long, dart::Heap::Space) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:21575 (dart+0x000000932f6d)

2. Race while updating c++ table entry into Object::builtin_vtables_
WARNING: ThreadSanitizer: data race (pid=16346)
  Atomic write of size 8 at 0x00000210c970 by main thread:
    #0 __tsan_atomic64_compare_exchange_val <null> (dart+0x0000005bad8a)
    #1 dart::AtomicOperations::CompareAndSwapWord(unsigned long*, unsigned long, unsigned long) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/atomic_linux.h:63 (dart+0x00000074b744)
    #2 dart::ClassTable::Register(dart::Class const&) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/class_table.cc:127 (dart+0x000000767cbc)
    #3 dart::Isolate::RegisterClass(dart::Class const&) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/isolate.cc:170 (dart+0x0000008e0046)
    #4 dart::RawClass* dart::Class::New<dart::Array>() /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:2037 (dart+0x000000931055)

  Previous read of size 8 at 0x00000210c970 by thread T3:
    #0 dart::ClassTable::Register(dart::Class const&) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/class_table.cc:130 (dart+0x000000767cc9)
    #1 dart::Isolate::RegisterClass(dart::Class const&) /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/isolate.cc:170 (dart+0x0000008e0046)
    #2 dart::RawClass* dart::Class::New<dart::Array>() /usr/local/google/home/asiva/workspace/dart-ws3/sdk/out/DebugX64/../../runtime/vm/object.cc:2037 (dart+0x000000931055)

BUG=
R=regis@google.com

Review-Url: https://codereview.chromium.org/2602123002 .
2016-12-29 13:20:58 -08:00
Zachary Anderson a1bcf051d8 clang-format runtime/vm
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
Ryan Macnak bff1351a22 Address additional comments re class id sorting.
R=asiva@google.com

Review URL: https://codereview.chromium.org/2305493002 .
2016-08-31 17:38:20 -07:00
Ryan Macnak 6a5a868a4e AOT: Reassign class ids so class hierarchies have contiguous ranges.
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2281263002 .
2016-08-26 16:17:05 -07:00
Carlo Bernaschina b0582b3bb7 Converted Observatory heap-profile element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2255613002 .
2016-08-17 15:51:38 -07:00
Ryan Macnak 6b5f29fb70 Reload: Don't free the saved class table while another thread may be reading it.
Fixes #27016.

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

Review URL: https://codereview.chromium.org/2240283002 .
2016-08-12 16:12:25 -07:00
Ryan Macnak 9470c085c3 Fix allocation stats for cross-compiled AOT targeting ARM or MIPS.
Resolves disagreement between SIMARM and ARM on the size of ClassHeapStats. Fixes assertion failures in AllocStats::Verify.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/2172803002 .
2016-07-21 16:04:57 -07:00
Ryan Macnak 4914592fbd Initialize non-product members of ClassTable.
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2143243002 .
2016-07-12 14:53:54 -07:00
Ryan Macnak a6f954b0f3 Don't track allocations in product mode.
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2143153002 .
2016-07-12 14:15:02 -07:00
Zachary Anderson a503570e3a Fuchsia: Initial check-in.
Instructions to build and run are in README.fuchsia.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2117593002 .
2016-07-01 12:42:05 -07:00
Florian Schneider 46f8b02dbb VM: Don't generate allocation stats code in product mode.
They are not needed since there is no observatory/profiling support
in product mode.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2105383003 .
2016-06-30 13:35:40 -07:00
Ryan Macnak 524fbc1e0f Use clustered serialization for full snapshots.
Retain the recursive-descent format for script and message snapshots.

Flutter gallery app on a Nexus 4
 - Snapshot, excluding instruction/rodata sections 3429177 -> 2874997B (-16%)
 - InitOnce 54.1 -> 8.4ms (-84%)
 - InitializeIsolate 374.3 -> 170.8ms (-54%)

R=asiva@google.com

Review URL: https://codereview.chromium.org/2032153003 .
2016-06-29 19:50:06 -07:00
Ryan Macnak 3f8c0bb0a9 Don't overload FreeListElement for become.
R=asiva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2026643004 .
2016-06-02 10:57:34 -07:00
Siva Annamalai c45ebeba70 Fix some potential data races based on output from tsan.
R=zra@google.com

Review URL: https://codereview.chromium.org/1765533003 .
2016-03-04 13:35:25 -08:00
Ryan Macnak 4b112c6d25 Precompilation: drop unused types and type arguments and empty classes and libraries.
precompiled dart2js arm 20748837 -> 20639848 (-0.52%)
precompiled flutter asteriods arm64 8926398 -> 8782136 (-1.6%)

R=regis@google.com

Review URL: https://codereview.chromium.org/1686773002 .
2016-02-22 14:05:03 -08:00
Srdjan Mitrovic ee55c3c9ef Minor work for background compilation
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1702093002 .
2016-02-16 11:16:47 -08:00
John McCutchan d295b9c311 Remove many features when building product mode
Move all JSON printing code from object.cc to object_service.cc.

Not compiled in:

- Service protocol
- Debugger
- Debugger API
- JSONStream
- ObjectIdRing
- Profiler service
- Object JSON printing

Size of dart_bootstrap before: 5670365 bytes
Size of dart_bootstrap after: 5287631 bytes

Reduction in size: 382734 bytes.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1660063002 .
2016-02-05 09:55:51 -08:00
Srdjan Mitrovic 354fcb12cf Cleanups. More mutator thread asserts.
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1448463004 .
2015-11-16 10:29:01 -08:00
Daniel Andersson b62e3204ed Make old-space heap stats safe for parallel marking.
Record live count/size stats locally in each marking task and sum the
results at the end.

This is needed for parallel (and later, concurrent) marking.

This also yields a more compact representation of
the stats compared to ClassHeapStats, which interleaves new/old/etc.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1346333003 .
2015-09-16 15:09:05 -07:00
John McCutchan ec675a3b0d Enable allocation tracing for classes owned by vm isolate
- Don't store the allocation tracing toggle bit in the class.
- Make sure that array and context slow path stubs are added to the code object's static call table.
- Add missing MaybeTraceAllocation to context allocation stub.

R=fschneider@google.com

Review URL: https://codereview.chromium.org//1292723002 .
2015-08-14 06:55:05 -07:00
Florian Schneider 8d38a58c18 Make array allocation stub shared between isolates.
This allows to make the last explicitly named stubs shared between isolates.

When sharing code stubs, we can't do patching at their entry anymore.
Therefore, I had to remove patching support of the array allocation stub.
Is this a functionality we want to keep?

The change is mostly performance-neutral because optimized code has an inlined fast
path for array allocation and only uses the stub for the slow-case.

The only isolate-specific stubs left are object allocation stubs which are
associated with their Class are per-isolate.

Since this CL removes any isolate-specific stubs from StubCode, it becomes AllStatic.

BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//1247783002 .
2015-07-23 12:56:16 +02:00
Florian Schneider 0cf617ef13 VM: Refactor allocation stats code and remove duplicate code.
Make context allocation stub shared between isolates.

The fast-path used in optimized code still has isolate-specific
addresses inlined for performance reasons.

Common functions are moved into class_table.h/.cc.

This is a preparation for adding an isolate-independent version of the
allocation code and allocation tracking code.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1241863002 .
2015-07-17 15:15:33 +02:00
John McCutchan 598c67001b Update Assembler::TryAllocate to support inline allocation tracing
- Track whether class allocation should be traced in existing ClassHeapStats structure.
- Emit compare and branch at top of ::TryAllocate

These changes appear to be performance neutral.

An alternative approach is to deoptimize all code that inlined allocations for a specific class. I do not think this is a good approach because we will spoil the water- allocations that aren't occurring in the (optimized steady state) running program  will appear in the allocation profile. This will make the data much less actionable bordering on misleading. The approach used in this CL will guarantee the allocation profile aligns with the actual running program.

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

Review URL: https://codereview.chromium.org//1213013002 .
2015-07-10 12:19:01 -07:00
turnidge@google.com ca5de9eac9 Kill service_test.cc tests in favor of dart tests for the service protocol.
Associated cleanups and fixes that I noticed as I rewrote the tests.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45257 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-17 21:08:02 +00:00
johnmccutchan@google.com 57ea35671c Add getClassList RPC
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43414 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 17:59:45 +00:00
johnmccutchan@google.com 172baa03ff Service isolate rework take 2
Review URL: https://codereview.chromium.org//889443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
johnmccutchan@google.com db271b0477 Revert r43217, r43215, r43208, r43207, and r43202.
Reverting because of some isolate spawn issues (on Windows, and pub bots).

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com 66aa470fc6 * Create vm-service isolate at Dart_Initialize time.
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.

performance changes:

no service isolate:

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

always start service isolate (as a thread pool task):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | -    0]

service does I/O (calls to Dart_LoadScript block until service is running):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
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 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
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