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

Issue 1528953002: Tweaks to improve performance of type-inference. (Closed)

Created:
5 years ago by Siggi Cherem (dart-lang)
Modified:
5 years ago
Reviewers:
Johnni Winther, sra1
CC:
reviews_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Tweaks to improve performance of type-inference. - short-circuit cases where join yields dynamic - improve performance of some queries like `hasOnlySubclasses` and how `contains` is implemented in `flatten`. We could also add caching for `length`, but not sure if we want to just have a static map or precompute the data in the class-hierarchy nodes. On my experiments this reduces inference times more than 50% on a large customer app, while small apps have almost no change. R=johnniwinther@google.com, sra@google.com Committed: https://github.com/dart-lang/sdk/commit/913ca6683412d4e770bf9c1132b721a59f7e3e34

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 8

Patch Set 4 : #

Patch Set 5 : #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+33 lines, -9 lines) Patch
M pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart View 1 2 3 4 1 chunk +20 lines, -3 lines 1 comment Download
M pkg/compiler/lib/src/types/union_type_mask.dart View 1 1 chunk +11 lines, -6 lines 0 comments Download
M pkg/compiler/lib/src/world.dart View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 10 (5 generated)
Siggi Cherem (dart-lang)
5 years ago (2015-12-16 04:31:22 UTC) #3
sra1
lgtm https://codereview.chromium.org/1528953002/diff/40001/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart File pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart (right): https://codereview.chromium.org/1528953002/diff/40001/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart#newcode546 pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart:546: for (TypeMask mask in masks) { what is ...
5 years ago (2015-12-16 05:06:17 UTC) #4
Johnni Winther
lgtm https://codereview.chromium.org/1528953002/diff/40001/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart File pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart (right): https://codereview.chromium.org/1528953002/diff/40001/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart#newcode547 pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart:547: newType = newType.union(mask, classWorld); How about: TypeMask newType; ...
5 years ago (2015-12-16 09:07:08 UTC) #5
Siggi Cherem (dart-lang)
thanks! https://codereview.chromium.org/1528953002/diff/40001/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart File pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart (right): https://codereview.chromium.org/1528953002/diff/40001/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart#newcode546 pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart:546: for (TypeMask mask in masks) { On 2015/12/16 ...
5 years ago (2015-12-17 01:02:57 UTC) #8
Siggi Cherem (dart-lang)
5 years ago (2015-12-17 01:03:50 UTC) #10
Message was sent while issue was closed.
Committed patchset #5 (id:120001) manually as
913ca6683412d4e770bf9c1132b721a59f7e3e34 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698