- Assign correct timestamps for timeline events from Dart code.
- Support optional 'timeOriginMicros' and 'timeExtentMicros' to _getVMTimeline service RPC.
- Relax time extent check in profiler.
R=asiva@google.com
Review URL: https://codereview.chromium.org/1533323004 .
- Make --gen/run-precompiled-snapshot take a directory to use for the snapshot pieces.
- Throw on Platform.executeable to prevent tests from becoming fork-bombs.
- Update status files so 'dart_precompiled' is generally expected to behave the same as 'vm'.
Currently multitests will fail unless run with --jobs=1 because the test harness assigns them the same temporary directory.
Running this also requires a great deal of space. My out directory is 380G.
BUG=http://dartbug.com/24975R=fschneider@google.com, srdjan@google.com
Review URL: https://codereview.chromium.org/1507943002 .
- Add dart:developer.postEvent for posting events to the service protocol.
- Add 'Extension' service protocol event stream.
- Unit test.
- Update service.md
- Bug fix for logging stream.
R=turnidge@google.com
Review URL: https://codereview.chromium.org/1537523002 .
- Add missing breadcrumbs to class heirarchy, flags and timetime view.
- Truncate large objects by default so we can look at them without falling over.
- Demangle local variable names.
R=turnidge@google.com
Review URL: https://codereview.chromium.org/1463123002 .
Instead of collecting closures functions in each class object, maintain one list per isolate. This is a step towards getting rid of top-level classes.
I'd appreciate if John could take a look at the service isolate and coverage related change.
I'd appreciate if Ryan could take a look at the precompilation related change.
When compiling all of corelib, the list of closures in the isolate is about 600 entries long. If this linear list should become a bottleneck, I'll deal with it later. (Sadly, some code relies on the fact that a closure can be identified with a list index, so making it a hash table instead of an array does not work.)
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1436243005 .
[1] has worse upper bound complexity than [2] but has lower
overhead. With [1] dart2js heaps would converge in ~10 iterations, but
with analyzer heaps would take ~10k iterations.
This reduces the time to analyze the final heap of the analyzer
analyzing dart2js from ~30 minutes to 26 seconds.
Increases peak memory usage by 21N bytes plus O(2N) words.
[1] "A Simple, Fast Dominance Algorithm." Keith D. Cooper, Timothy
J. Harvey, and Ken Kennedy.
[2] "A Fast Algorithm for Finding Dominators in a Flowgraph."
T. Lengauer and R. E. Tarjan.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1449243002 .
- When printing implicit getter or setter functions, include the field that the implicit functions were generated for.
- Display field on function view in Observatory.
- Service unit test.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1440753002 .
A TimelineTask represents an asynchronous track of operations on the timeline.
The old API allowed multiple isolates to emit events simultaneously on the same task or to start / finish events in any order. This isn't supported by our UI and probably many other tools that consume trace-event.
With this change, operations within a TimelineTask must complete in the reverse order of their start calls (aka a stack). You can pass a TimelineTask from one isolate to another but you must first complete all open operations before passing it.
Example:
var task = new TimelineTask();
task.start('Some phase');
await someFuture;
task.finish();
Also: Add support for instant events.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1412183008 .
Service Protocol:
- _clearVMTimeline (clear timeline)
- _getVMTimeline (fetch timeline)
- _setVMTimelineFlag (control recording)
- _getVMTimelineFlag (...)
- _getVMTimeline service unit test
Observatory:
- timeline page with record on/off, clear timeline, and refresh buttons.
- trace-viewer based timeline view that runs in an iframe driven by a small javascript program
Misc:
- Fix default enable logic bugs
- Add 'Debugger Pause' timeline event
- Threads can have a name and that name will be displayed in Observatory
- Tighten up locking when printing JSON
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1406413006 .
More specifically ./tools/test.py --noopt -mall -ax64,simarm,simarm64,simmips --exclude-suite=pkg
- Add missing dart:io entry point.
- Add checks that Dart_FinalizeLoading, Dart_Precompile, Dart_CreatePrecompiledSnapshot are called in order.
- Add checks for --precompilation flag.
- Add checks for dropped class in Dart_New/Allocate/AllocateWithNativeFields.
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1407393005 .
Charted charts persist some DOM children in the element and Polymer sends multiple attached() events, resulting in a stale chart svg element offsetting the current one.
Fix is simple- remove stale elements in detached().
R=turnidge@google.com
Review URL: https://codereview.chromium.org/1401113004 .