[PATCH] D80830: [clang-format] [PR46130] When editing a file with unbalance {} the namespace comment fixer can incorrectly comment the wrong closing brace
MyDeveloperDay via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat May 30 05:16:40 PDT 2020
MyDeveloperDay added a comment.
We don't really have any performance tests, but the following shows some analysis, all builds are release build:
- clang-format-ns is built with this change (compiled with VS2017)
- clang-format is without (compiled with VS2017)
- c:/Program\ Files/LLVM/bin/clang-format is the last Feb 2020 snapshot build version of clang-format (probably compiled with clang-cl)
- build_release_cl/clang-format with this change (compiled with clang-cl from Fab2020 snapshot) _ build_2019/clang-format with this change (compiled with VS2019)
The test is to run clang-format over the largest file in LLVM
./libcxxabi/test/test_demangle.pass.cpp is 5.2M in size = 30,000 lines, 29799 opening and closing braces
For a file this size I think I'd expect IO to dominate (I'm running this test on an Intel i7-800 CPU @3,.20GHz with an SSD, Running cygwin in Windows 10)
I've run these tests multiple times and they are often the same or similar timings (I'm running the base clang-format as a benchmark twice because the first run is often slower
time /clang/build_release/bin/clang-format ../libcxxabi/test/test_demangle.pass.cpp > speed1 (Baseline to get test_demangle.pass.cpp into system cache)
real 0m3.957s
user 0m0.000s
sys 0m0.000s
time /clang/build_release/bin/clang-format-ns ../libcxxabi/test/test_demangle.pass.cpp > speed1
real 0m3.994s
user 0m0.000s
sys 0m0.000s
time /clang/build_release/bin/clang-format ../libcxxabi/test/test_demangle.pass.cpp > speed1
real 0m3.990s
user 0m0.000s
sys 0m0.000s
time c:/Program\ Files/LLVM/bin/clang-format ../libcxxabi/test/test_demangle.pass.cpp > speed1
real 0m3.793s
user 0m0.000s
sys 0m0.000s
time /clang/build_release_cl/bin/clang-format ../libcxxabi/test/test_demangle.pass.cpp > speed1
real 0m3.442s
user 0m0.000s
sys 0m0.000s
time /clang/build_2019/bin/clang-format ../libcxxabi/test/test_demangle.pass.cpp > speed1
real 0m3.820s
user 0m0.000s
sys 0m0.000s
The speed difference of this change of clang-format is fairly negligible, varying by about +/-20ms one way or the other (often swinging the other between runs or depending on which goes first)
I feel this change is relatively low impact, (perhaps the loop could be moved into some earlier equivalent loop but for clarity, I think it's ok here for now.)
I'm not 100% sure how we could reliably test performance generally in clang-format, but I think it would be good to have something.
The key takeaway is likely that clang-cl is quicker! and it obviously more about which compiler you choose.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D80830/new/
https://reviews.llvm.org/D80830
More information about the cfe-commits
mailing list