Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICU-20250 faster MutableCodePointTrie.buildImmutable(): linear search -> hashtable #265

Merged
merged 1 commit into from Nov 7, 2018

Conversation

markusicu
Copy link
Member

@markusicu markusicu commented Nov 3, 2018

No description provided.

Copy link
Contributor

@aheninger aheninger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This all seems reasonable to me, modulo cleaning up various bits of debug code.

icu4c/source/common/umutablecptrie.cpp Show resolved Hide resolved
@gvictor
Copy link
Collaborator

gvictor commented Nov 7, 2018

I am not familiar with code base here, but the change LGTM.

I see performance improvement 1,507ms -> 1,260ms on Android. Some other performance regression may come from Android itself. I will take a look.

aheninger
aheninger previously approved these changes Nov 7, 2018
…d equal blocks in earlier parts of the compacted data & index arrays
@markusicu markusicu merged commit 5900677 into unicode-org:master Nov 7, 2018
@markusicu markusicu deleted the triebuildhash branch November 7, 2018 22:29
@gvictor
Copy link
Collaborator

gvictor commented Nov 8, 2018

Just quick update. I think it fixes Android's regression issue.

My previous comment was incorrect. I corrected my measurement, and I see DateTimePatternGenerator$FormatParser cinit performance improves by ~70%. It took ~217ms to cinit the class with ICU 63. It was ~400ms with ICU62.

If I update the Android runtime with AOT compiled code, there will be another ~70- 75% performance improvement.

mapx pushed a commit to mapx/icu that referenced this pull request Dec 11, 2018
The start-up performance regression reported for Android
WebView and Windows Chrome is traced to UnicodeSet creation
for Unicode character properties.

This upstream PR speeds up UnicodeSet creation.

Upstream bug:
  https://unicode-org.atlassian.net/browse/ICU-20250

Upstream PR: unicode-org/icu#265

TBR=ftang@chromium.org

Bug: 899983,901532
Test: Android webview start-up perf.
Change-Id: Iffb6eac4ddde2cabd2f55fe718a9b4e3f39b4e05
Reviewed-on: https://chromium-review.googlesource.com/c/1325398
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants