<div dir="ltr"><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">
Hi.</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">
My tool (smth like IDE) uses Clang via C API. The main approach is the next, when the file is changed:</p><ol style="margin:0px 0px 1em 30px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;list-style-position:initial;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">
<li style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">parseTranslationUnit</li><li style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
getDiagnosticSetFromTU</li><li style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">tokenize</li><li style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
indexSourceFile</li></ol><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">
This makes all the features (highlighting, building file structure tree, diagnostics) working perfect, but it takes a lot of time as it's working on mobile device.</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">
I will do obvious optimization - executing in worker thread in order to avoid UI blocking, but i'd like to know about other optimizations.<br></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">
What can be done concurrently in order to get better performance (lower response time)? Is it safe to perform actions after parsing concurrently? Any other optimizations? Also i use a lot of libraries using '-I' arguments in commandLineArgs for parse() and index(). Is there any approach to avoid reparsing them each time user file is changed?</p>
<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:18px">Regards, Anton.</p>
</div>