<div dir="ltr"><blockquote style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">Depending on exactly what information you want to extract, you may be<br>
able to set "SkipFunctionBodies". I found this cut the total parsing<br>
time down to 40%</blockquote><div>Thanks for advice, but I already use option SkipFunctionBodies.  <br><br><blockquote style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
More generally, I think the consensus is that you have to do the<br>
indexing offline, and then have your IDE query the index.<br><br>
Have you seen this thread:<br><a href="http://clang-developers.42468.n3.nabble.com/RFC-A-proposal-for-a-Clang-based-service-architecture-td4024449.html" target="_blank">http://clang-developers.42468.n3.nabble.com/RFC-A-proposal-for-a-Clang-based-service-architecture-td4024449.html</a><br>
</blockquote><div>Thanks, I will read it, but it seems this article is not about performance at all (anyway clang must index the whole project).<br></div>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 6, 2013 at 9:38 PM, David Röthlisberger <span dir="ltr"><<a href="mailto:david@rothlis.net" target="_blank">david@rothlis.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 13-08-06 01:21 PM, Zurab Btensnae wrote:<br>
</div><div class="im">> I've tried to use libclang and, first of all, for test purposes I've indexed LLVM with it (using clang_indexSourceFile with empty callbacks). But the whole process takes about an hour, which is very slow. As far as I know libclang is used in some IDEs as a code assistance provider, but how it could be if it consumes so much time on relatively big projects? The project which I'd like to open is even bigger then LLVM (Mozilla). Is there a way to speed up parsing - for example to parse headers only once (create precompiled header for each parsed header), and then reuse this information in other translation units? Maybe this will lead to some inaccuracy because contexts are different, but performance is a showstopper for me :(. I'm ready to try to hack clang:) if somebody who is familiar with clang will give me a short briefing on how this could be done in principle (or maybe this is just impossible).<br>

<br>
</div>Depending on exactly what information you want to extract, you may be<br>
able to set "SkipFunctionBodies". I found this cut the total parsing<br>
time down to 40% (see<br>
<a href="https://github.com/drothlis/clang-ctags/commit/ee7d93ee" target="_blank">https://github.com/drothlis/clang-ctags/commit/ee7d93ee</a> ).<br>
<br>
More generally, I think the consensus is that you have to do the<br>
indexing offline, and then have your IDE query the index.<br>
<br>
Have you seen this thread:<br>
<a href="http://clang-developers.42468.n3.nabble.com/RFC-A-proposal-for-a-Clang-based-service-architecture-td4024449.html" target="_blank">http://clang-developers.42468.n3.nabble.com/RFC-A-proposal-for-a-Clang-based-service-architecture-td4024449.html</a><br>

<br>
Dave.<br>
<br>
</blockquote></div><br></div>