VC>Т.е. парсинг и прочий анализ откладывается пока пользователь не начнет вводить код или не попросит движок typing assist?
VC>А нельзя ли лениво эту работу в фоне начать, пока пользователь просто смотрит в tab с исходником или скроллит? Вы же для раскраски синтаксиса лениво анализируете, наверно там и анализ для type assistant можно запускать? На вид это же всё в рамках архитектуры видится.
Резолв самого нужного случается сразу, остальное откладывается "пока не понадобиться". Вообще резолв довольно тяжелая штука, если мы постоянно в фоне будет резолвить код, которые может пользователь вообще никогда не откроет, будет большой CPU usage без толку. К тому же, тайпинг — очевидно меняет код. Так что что-то приходится и налету репарсить и еще как-то при этом (в отличие от компилятора) восстанавливаться от ошибок. В целом, это все понятные алгоритмы, но накладываются на C++ они местами со скрипом. И кое-где мы пытаемся что-то совсем новое сделать сейчас.
VC>И как/чем снять CPU Snapshot и какого именно процесса для JSX (Rider) и C/C++ исходников (CLion)?
CLion:
https://intellij-support.jetbrains.com/hc/en-us/articles/207241235-Reporting-performance-problems
Rider:
https://rider-support.jetbrains.com/hc/en-us/articles/207490549-Rider-Profiling-Instructions-NET-process-