summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
diff options
context:
space:
mode:
authorIlya Biryukov <ibiryukov@google.com>2019-08-20 08:54:30 +0000
committerIlya Biryukov <ibiryukov@google.com>2019-08-20 08:54:30 +0000
commit30c86b64da71a9386c35f8ab973ae360bec9b651 (patch)
tree0849ec7c10af7e61e89e41e88c275473b9141fdd /lldb/packages/Python/lldbsuite
parent522377494b3d7c4bfcaa9a632497231ac3c19143 (diff)
downloadbcm5719-llvm-30c86b64da71a9386c35f8ab973ae360bec9b651.tar.gz
bcm5719-llvm-30c86b64da71a9386c35f8ab973ae360bec9b651.zip
[clangd] Skip function bodies inside processed files while indexing
Summary: This significantly improves performance of background indexing. We do not collect references and declarations inside the processed files, so this does not affect the final indexing results. The idea is borrowed from libclang, which has a similar optimization in its indexing functionality. Measurements show a nice decrease in indexing time, up to ~40% for building the whole index. These are not proper benchmarks, so one should not rely on these results too much. 1. Rebuilding the whole index for LLVM: - Before. Total time: 14m58s. ./bin/clangd -pch-storage=memory < ./clangd.input 23917.67s user 515.86s system 2718% cpu 14:58.68 total - After. Total time: 8m41s. ./bin/clangd -pch-storage=memory < ./clangd.input 13627.29s user 288.10s system 2672% cpu 8:40.67 total 2. Rebuilding index after removing shards matching '*clangd*' (case-insensitively): - Before. Total time: 30s. ./bin/clangd -pch-storage=memory < ./clangd.input 130.94s user 6.82s system 452% cpu 30.423 total - After. Total time: 26s. ./bin/clangd -pch-storage=memory < ./clangd.input 80.51s user 5.40s system 333% cpu 25.777 total Reviewers: kadircet, sammccall Reviewed By: kadircet Subscribers: MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66226 llvm-svn: 369349
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud