diff options
author | rouslan@chromium.org <rouslan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-15 00:56:24 +0000 |
---|---|---|
committer | rouslan@chromium.org <rouslan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-15 00:56:24 +0000 |
commit | 07949ab6ce355f0ce0e1e238326d695272191cdc (patch) | |
tree | 85a0b8c223b04be48724b5b6ab3472513b5c3e94 /third_party/libaddressinput/libaddressinput.gyp | |
parent | fbcf7ab20679679f9c4f589a34df250a01f12cdf (diff) | |
download | chromium_src-07949ab6ce355f0ce0e1e238326d695272191cdc.zip chromium_src-07949ab6ce355f0ce0e1e238326d695272191cdc.tar.gz chromium_src-07949ab6ce355f0ce0e1e238326d695272191cdc.tar.bz2 |
[rac] Improve libaddressinput suggestion performance with tries.
The patch changes suggestion algorithm from a for loop that compared
prefixes to a trie. The performance impact on a debug build:
Old (for loop that compared prefixes):
- Build rulesets = 200 ms
- Each character typed = 500 ms
New (trie):
- Build rulesets = 200 ms
- First character typed = 220 ms (200 ms due to building trie)
- Each subsequent character typed = 20 ms
The performance for each character improves significantly. Building
rulesets and the trie still have room for optimization.
BUG=347383
Review URL: https://codereview.chromium.org/183793003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257277 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/libaddressinput/libaddressinput.gyp')
-rw-r--r-- | third_party/libaddressinput/libaddressinput.gyp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/third_party/libaddressinput/libaddressinput.gyp b/third_party/libaddressinput/libaddressinput.gyp index 04c3f95..b0dfee2 100644 --- a/third_party/libaddressinput/libaddressinput.gyp +++ b/third_party/libaddressinput/libaddressinput.gyp @@ -49,12 +49,12 @@ '<(SHARED_INTERMEDIATE_DIR)/libaddressinput/', ], 'sources': [ + 'chromium/canonicalize_string.cc', 'chromium/chrome_downloader_impl.cc', 'chromium/chrome_downloader_impl.h', 'chromium/chrome_storage_impl.cc', 'chromium/chrome_storage_impl.h', 'chromium/json.cc', - 'chromium/string_compare.cc', '<(libaddressinput_dir)/cpp/include/libaddressinput/address_data.h', '<(libaddressinput_dir)/cpp/include/libaddressinput/address_field.h', '<(libaddressinput_dir)/cpp/include/libaddressinput/address_problem.h', @@ -92,9 +92,13 @@ '<(libaddressinput_dir)/cpp/src/util/md5.cc', '<(libaddressinput_dir)/cpp/src/util/md5.h', '<(libaddressinput_dir)/cpp/src/util/stl_util.h', + '<(libaddressinput_dir)/cpp/src/util/canonicalize_string.h', + '<(libaddressinput_dir)/cpp/src/util/string_compare.cc', '<(libaddressinput_dir)/cpp/src/util/string_compare.h', '<(libaddressinput_dir)/cpp/src/util/string_split.cc', '<(libaddressinput_dir)/cpp/src/util/string_split.h', + '<(libaddressinput_dir)/cpp/src/util/trie.cc', + '<(libaddressinput_dir)/cpp/src/util/trie.h', ], 'defines': [ 'VALIDATION_DATA_URL="https://i18napis.appspot.com/ssl-aggregate-address/"', @@ -152,6 +156,7 @@ '<(libaddressinput_dir)/cpp/test/util/scoped_ptr_unittest.cc', '<(libaddressinput_dir)/cpp/test/util/stl_util_unittest.cc', '<(libaddressinput_dir)/cpp/test/util/string_split_unittest.cc', + '<(libaddressinput_dir)/cpp/test/util/trie_test.cc', ], 'defines': [ 'TEST_DATA_DIR="third_party/libaddressinput/src/testdata"', |