Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(159)

Side by Side Diff: pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart

Issue 2847343002: Add support for profile-based startup optimizations. (Closed)
Patch Set: Address comments. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.js_emitter.startup_emitter.model_emitter; 5 library dart2js.js_emitter.startup_emitter.model_emitter;
6 6
7 import 'dart:convert' show JsonEncoder; 7 import 'dart:convert' show JsonEncoder;
8 import 'dart:math' show Random;
8 9
9 import 'package:js_runtime/shared/embedded_names.dart' 10 import 'package:js_runtime/shared/embedded_names.dart'
10 show 11 show
11 CLASS_FIELDS_EXTRACTOR, 12 CLASS_FIELDS_EXTRACTOR,
12 CLASS_ID_EXTRACTOR, 13 CLASS_ID_EXTRACTOR,
13 CREATE_NEW_ISOLATE, 14 CREATE_NEW_ISOLATE,
14 DEFERRED_INITIALIZED, 15 DEFERRED_INITIALIZED,
15 DEFERRED_LIBRARY_URIS, 16 DEFERRED_LIBRARY_URIS,
16 DEFERRED_LIBRARY_HASHES, 17 DEFERRED_LIBRARY_HASHES,
17 GET_TYPE_FROM_NAME, 18 GET_TYPE_FROM_NAME,
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 writeDeferredFragments(deferredFragmentsCode); 185 writeDeferredFragments(deferredFragmentsCode);
185 186
186 // Now that we have written the deferred hunks, we can update the hash 187 // Now that we have written the deferred hunks, we can update the hash
187 // tokens in the main-fragment. 188 // tokens in the main-fragment.
188 deferredHashTokens 189 deferredHashTokens
189 .forEach((DeferredFragment key, _DeferredFragmentHash token) { 190 .forEach((DeferredFragment key, _DeferredFragmentHash token) {
190 token.setHash(hunkHashes[key]); 191 token.setHash(hunkHashes[key]);
191 }); 192 });
192 193
193 writeMainFragment(mainFragment, mainCode, 194 writeMainFragment(mainFragment, mainCode,
194 isSplit: program.deferredFragments.isNotEmpty); 195 isSplit: program.deferredFragments.isNotEmpty ||
196 program.hasSoftDeferredClasses ||
197 compiler.options.experimentalTrackAllocations);
195 198
196 if (backend.backendUsage.requiresPreamble && !backend.htmlLibraryIsLoaded) { 199 if (backend.backendUsage.requiresPreamble && !backend.htmlLibraryIsLoaded) {
197 reporter.reportHintMessage(NO_LOCATION_SPANNABLE, MessageKind.PREAMBLE); 200 reporter.reportHintMessage(NO_LOCATION_SPANNABLE, MessageKind.PREAMBLE);
198 } 201 }
199 202
200 if (compiler.options.deferredMapUri != null) { 203 if (compiler.options.deferredMapUri != null) {
201 writeDeferredMap(); 204 writeDeferredMap();
202 } 205 }
203 206
204 // Return the total program size. 207 // Return the total program size.
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 // data. 381 // data.
379 mapping["_comment"] = "This mapping shows which compiled `.js` files are " 382 mapping["_comment"] = "This mapping shows which compiled `.js` files are "
380 "needed for a given deferred library import."; 383 "needed for a given deferred library import.";
381 mapping.addAll(compiler.deferredLoadTask.computeDeferredMap()); 384 mapping.addAll(compiler.deferredLoadTask.computeDeferredMap());
382 compiler.outputProvider( 385 compiler.outputProvider(
383 compiler.options.deferredMapUri.path, '', OutputType.info) 386 compiler.options.deferredMapUri.path, '', OutputType.info)
384 ..add(const JsonEncoder.withIndent(" ").convert(mapping)) 387 ..add(const JsonEncoder.withIndent(" ").convert(mapping))
385 ..close(); 388 ..close();
386 } 389 }
387 } 390 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart ('k') | pkg/compiler/lib/src/options.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698