Ryan Macnak
8b217ec519
Rename references to "external pages" as "image pages" to avoid confusion with the kind of external memory associated with finalizers.
...
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2654183002 .
2017-01-26 09:53:06 -08:00
Ryan Macnak
b46af1e75f
Refactor snapshots pieces to include a section for loading instructions into the heap of a regular isolate.
...
Progress toward allowing each isolate to load a different snapshot.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2622053002 .
2017-01-23 10:25:02 -08:00
Ryan Macnak
2ec03cba70
Fix leak of message snapshot buffer when attempting to send an illegal object.
...
Fix leak with FLAG_enable_debug_break.
R=asiva@google.com , fschneider@google.com
Review-Url: https://codereview.chromium.org/2629533002 .
2017-01-11 16:50:04 -08:00
Ryan Macnak
cbf3eaeb90
Fix various memory leaks in unit tests detected by a new version of ASAN.
...
R=zra@google.com
Review-Url: https://codereview.chromium.org/2620413002 .
2017-01-11 11:12:40 -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
Zachary Anderson
dbcd602b18
Adds InitialRSS benchmark
...
Measuring memory footprint of the VM after initialization.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2329003002 .
2016-09-09 09:47:56 -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
1e8fdaee68
Support for taking full snapshots from 'dart', not just 'dart_bootstrap'.
...
- Don't create rival copies of the predefined symbols in isolates in dart_bootstrap.
- Don't do work to save these rival copies during symbol table compaction.
- Create unified symbol table just before writing the vm isolate.
- Create unified list of scripts to include in the vm isolate.
- Ignore object ids of the old vm isolate when writing a new one.
- Ensure token stream private keys are hashed.
- Use the type of isolate we are writing instead of an object's current isolate to decide if vm isolate objects are written symbolically.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1944213002 .
2016-05-10 10:13:33 -07:00
Ryan Macnak
f55c9c54a8
Split Snapshot::kFull into kCore, kAppWithJIT, and kAppNoJIT. Remove snapshot_code flag.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org/1918313003 .
2016-04-26 17:03:24 -07:00
Ryan Macnak
f262fad639
Option to output precompiled instructions as a blob for use with mmap instead of assembly for use in a shared library.
...
BUG=http://dartbug.com/26199
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1915853004 .
2016-04-25 16:19:34 -07:00
Srdjan Mitrovic
1a9fc8b2fa
Move CompilerStats from isolate to thread. Aggregate stats.
...
The mutator thread holds the aggregate values, the background compiler adds its value to it.
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org/1841213003 .
2016-03-30 13:38:32 -07:00
Florian Schneider
d8677964a3
Move precompilation-related flags to flags list.
...
They become compile-time constants in the precompiled runtime, and in product mode.
In precompiled product mode, the precompiled value has precedence.
BUG=
R=rmacnak@google.com
Committed: https://github.com/dart-lang/sdk/commit/5c9f18c6c87284395564051a052cc4acc9b6f59a
Review URL: https://codereview.chromium.org/1731743003 .
2016-02-25 07:53:39 -08:00
Ryan Macnak
bd85deaf4e
Revert "Move precompilation-related flags to flags list."
...
The default value of print_stop_message was architecture specific.
TBR=fschneider@google.com
Review URL: https://codereview.chromium.org/1739593002 .
2016-02-24 18:08:01 -08:00
Florian Schneider
5c9f18c6c8
Move precompilation-related flags to flags list.
...
They become compile-time constants in the precompiled runtime, and in product mode.
In precompiled product mode, the precompiled value has precedence.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1731743003 .
2016-02-24 17:31:08 -08:00
John McCutchan
fda3a9bc2b
Remove more things
...
(stripped) dart_product before: 5307888
(stripped) dart_product after: 5275088
Reduction in size: 32800 bytes.
Removed entirely:
- debuginfo*
- elfgen*
- gdbjit*
- TraceBuffer
- vtune support
Removed in product:
- Compiler stats
- Code observers
R=asiva@google.com
Review URL: https://codereview.chromium.org/1711163002 .
2016-02-22 08:53:11 -08:00
Srdjan Mitrovic
a5db38467e
Disable background compilation for compile all benchmarks
...
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1684073007 .
2016-02-12 15:40:07 -08:00
Siva Annamalai
1e5eab3a14
- reorganize DartUtils::PrepareForScriptLoading so that it does not have the wait for service load port code in it. This is needed so that it is possible to not wait for the service load port when running with a full application snapshot that requires no loading.
...
- cache builtin_lib in IsolateData so that the cached value can be used withouit having to call Builtin::LoadAndCheckLibrary which creates new string objects everytime it is called.
Review URL: https://codereview.chromium.org/1663963002 .
2016-02-04 09:18:31 -08:00
Siva Annamalai
e72c1fb47d
Implement safepointing of threads :
...
- uses thread execution status transition to track when a thread is in a safepoint or needs to block for a safepoint
- introduces a monitor per Thread object
- uses a per thread safepoint handshake between the thread requesting a safepoint and the requested thread.
The ThreadRegistry class now contains only the thread list for an isolate and the functionality of scheduling a thread onto an Isolate and unscheduling it from teh isolate. We could fold this functionality into the Isolate class in a different CL.
R=rmacnak@google.com , zra@google.com
Review URL: https://codereview.chromium.org/1541073002 .
2016-02-01 10:57:34 -08:00
Siva Annamalai
01b69ebabc
Move ApiLocalScope out of class ApiState into class Thread so that the API local handles and zone etc. are thread specific instead of being Isolate specific.
...
R=zra@google.com
Review URL: https://codereview.chromium.org/1473403003 .
2015-11-25 11:07:22 -08:00
Srdjan Mitrovic
465cf10a7c
Remove some Isolate::current_zone() calls, as it gets the zone from mutator thread not the current thread
...
BUG=
R=zra@google.com
Review URL: https://codereview.chromium.org/1414493003 .
2015-10-19 10:27:36 -07:00
Srdjan Mitrovic
e520dd567f
Remove isolate argument from handle allocation: Part I
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org/1393373003 .
2015-10-12 11:32:08 -07:00
Matthias Hausner
2ee5a1289d
Fix compiler stats
...
Don’t print stats for VM and service isolates
Guard against division by zero in all cases
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1348383002 .
2015-09-16 14:10:40 -07:00
Siva Annamalai
c0107a3e44
Skip crashing tests Dart2JSCompilerStats and CorelibCompilerStats.
...
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1352623002 .
2015-09-16 12:21:02 -07:00
Matthias Hausner
bb097ec37f
Add benchmark output to compiler stats.
...
Add two compiler stats benchmarks to unit tests
Sample output:
xcodebuild/ReleaseIA32/run_vm_tests CorelibCompilerStats
NumberOfTokens: 271148
NumClassesParsed: 730
NumFunctionsCompiled: 8987
NumFunctionsOptimized: 0
NumFunctionsParsed: 9694
NumTokensScanned: 0 tokens
ScannerTime: 0 ms
ScannerSpeed: 0 tokens/ms
NumTokensParsed: 531066 tokens
ParserTime: 262 ms
ParserSpeed: 2026 tokens/ms
NumTokensCompiled: 433816 tokens
CompilerTime: 648 ms
CompilerSpeed: 668 tokens/ms
CodeSize: 4428 KB
CodeDensity: 138 tokens/KB
InstrSize: 3127 KB
CorelibCompilerStats(RunTime): 694788
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//1352483002 .
2015-09-16 11:18:31 -07:00
Zachary Anderson
16393ee9c6
Uses SNPRINT macro where possible. Otherwise uses #define for format.
...
I was able to convert 49 SNPrint(NULL, 0, ...) patterns to use the
macro. I had to use a #define for the format string 5 times due to
uses that didn't fit the macro.
2 occurences of SNPrint(NULL, 0, ...) had >=2 possibilities for the
format string based on runtime values, and I didn't try to convert
them.
Fixed ~10 format strings.
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1331623002 .
2015-09-11 00:18:14 -07:00
Ryan Macnak
0ed4d44a99
Toward precompiled snapshots.
...
Gets as far as encountering null Instructions in the first Dart_Invoke after loading the snapshot.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1318803002 .
2015-09-02 16:15:02 -07:00
Ivan Posva
0a0b101fbd
- Remove deprecated StackZone constructor with Isolate parameter.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1312813006 .
2015-09-02 16:07:48 -07:00
Ivan Posva
4bd7cdc75c
- Ensure that HandleScope is initialized with a thread. (Remove
...
deprecated isolate based API.)
- Update all code impacted by this change. E.g. DARTSCOPE
- TEST_CASE now passes the current thread as a parameter to the unit test.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//1310463005 .
2015-09-01 17:18:55 -07:00
Ryan Macnak
7055e4862b
Toward precompiled snapshots.
...
R=asiva@google.com , fschneider@google.com
Review URL: https://codereview.chromium.org//1290933002 .
2015-08-19 15:34:17 -07:00
Ivan Posva
b07a9ddbca
- Implement .packages specification.
...
Limitation: Currently only works for file: based .package files. If a script is loaded from http: then the VM currently assumes a co-located packages/ directory.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1232593003 .
2015-07-29 11:30:33 -07:00
Daniel Andersson
ea46192ca3
VM-internalize the default Map implementation.
...
Make the compact linked hash map, which is the default implementation for Map
(including map literals), a VM-internal class.
This makes it easy to have more efficient serialization of maps (although for
now, the implementation is straight-forward).
Refactor the compact hash class hierarchy to enable the VM-internal class and
the rest (also the Set classes) to share a maximal amount of code, by using
two different bases for implicit/explicit fields.
Remove existing proof-of-concept, C++-based internal VM-class.
BUG=http://dartbug.com/22982
R=asiva@google.com
Review URL: https://codereview.chromium.org//1151523002
2015-05-28 09:32:54 -07:00
asiva@google.com
05d7eb5dfa
Move symbol table from per isolate snapshot to vm isolate snapshot, this reduces the per isolate initial heap size
...
from New space (0k of 1024k) Old space (1274k of 1536k)
to New space (0k of 1024k) Old space (756k of 1280k)
R=hausner@google.com
Review URL: https://codereview.chromium.org//1123813002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45795 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 20:14:37 +00:00
iposva@google.com
d0763f97f3
- Add --trace-loading to trace resolution and loading.
...
- Remove unused --print-script option.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1138083003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45720 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 22:58:32 +00:00
koda@google.com
db37a330e4
Add missing ExitIsolate to benchmark test.
...
TBR=asiva@google.com
Review URL: https://codereview.chromium.org//1055643003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44851 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 23:29:56 +00:00
koda@google.com
f4419287aa
Prepares for multiple threads by further decoupling Thread from Isolate.
...
- Replace Isolate::SetCurrent with more explicit Thread::Enter/ExitIsolate.
- Lazily initialize Thread instances when entering an isolate, to avoid new API calls for embedders.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1041523002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44835 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 17:48:11 +00:00
asiva@google.com
87c8a6ee76
First step towards splitting a full snapshot into a vm isolate snapshot and a
...
regular isolate snapsot.
- change gen_snapshot to split a full snapshot into a vm isolate snapshot
and an isolate snapshot
- change the build process and scripts to account for splitting the full
snapshot
R=hausner@google.com
Review URL: https://codereview.chromium.org//1023753006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44814 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 18:46:19 +00:00
koda@google.com
92a8c39d3c
Keep zone cached in SnapshotReader to allow removing ZoneHandle(Isolate*) interface.
...
Add a StackZone around API snapshot reading call.
Also remove CheckedHandle(Isolate*) interface by migrating its users to Zone*.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1012333002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44580 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 17:42:40 +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
asiva@google.com
ca1c3241c4
Fix for issue 21398.
...
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.
R=iposva@google.com
Review URL: https://codereview.chromium.org//834233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
johnniwinther@google.com
09fbe78e71
Move dart2js from sdk/lib/_internal/compiler to pkg/compiler
...
BUG=
Review URL: https://codereview.chromium.org//694353007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41514 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-05 08:51:01 +00:00
johnniwinther@google.com
8637cfd322
Revert "Move dart2js from sdk/lib/_internal/compiler to pkg/compiler"
...
This reverts commit r41512.
BUG=
Review URL: https://codereview.chromium.org//693183006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41513 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-05 08:15:26 +00:00
johnniwinther@google.com
2b336e17f0
Move dart2js from sdk/lib/_internal/compiler to pkg/compiler
...
BUG=
Review URL: https://codereview.chromium.org//690103004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41512 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-05 07:09:04 +00:00
rmacnak@google.com
c7d3dde161
Don't leak memory between iterations of the message serialization benchmarks.
...
BUG=http://dartbug.com/20767
R=asiva@google.com
Review URL: https://codereview.chromium.org//528073002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39781 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-02 22:07:12 +00:00
asiva@google.com
97b903c665
Fix for issue 19817
...
- do not try to finalize classes on every Dart API call which could
potentially result in calls to dart code
- Invoke Dart_FinalizeLoading after all loads are done to ensure that
classes are finalized
R=hausner@google.com
Review URL: https://codereview.chromium.org//411633002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38471 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 20:08:15 +00:00
hausner@google.com
4eac05607f
Lazy loading of deferred libraries
...
Defer reading of source code of deferred libraries until the
Dart code executes the loadLibrary() call.
R=iposva@google.com
Review URL: https://codereview.chromium.org//328923002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37334 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 22:43:31 +00:00
iposva@google.com
551e5f845a
- Report CodeSize instead of runtime for benchmarks reporting snapshot sizes.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//314383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37156 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 05:20:52 +00:00
zra@google.com
e06fa909d1
Simplifies CorelibIsolateStartup benchmark,
...
and increases the number of iterations to improve stability.
R=asiva@google.com
Review URL: https://codereview.chromium.org//319833004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37061 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 01:28:50 +00:00
zra@google.com
ea99b1e6f8
Adds debugger patching to arm64.
...
Also other small fixes.
R=regis@google.com
Review URL: https://codereview.chromium.org//274043003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36003 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 23:20:14 +00:00
hausner@google.com
12c56b29c7
Eliminate unused url mapping parameter in dartutils
...
Change the LibraryTagHandler used in unit tests to match
the real tag handler better, eliminating special treatment
of url canonicalization. This required changing the library
url of tests so tests don’t get loaded using dart scheme urls,
since builtin.dart doesn’t handle dart: urls.
R=iposva@google.com
Review URL: https://codereview.chromium.org//270503007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35987 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 18:25:41 +00:00
zra@google.com
7d0b680f95
Adds Simulator Longjmp and enables many tests for arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//264753002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35603 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-30 23:07:47 +00:00