Re[3]: А почему Intellisense однопоточный?
От: anastasiak2512  
Дата: 01.09.20 10:32
Оценка: 7 (1)
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-
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.