В 10 раз быстрее TypeScript – TypeScript

Сегодня я рад объявить о следующих шагах, которые мы предпринимаем, чтобы радикально улучшить производительность TypeScript.

https://www.youtube.com/watch?v=pnlq-evld70

Основным ценностным предложением TypeScript является отличный опыт разработчика. По мере роста вашей кодовой базы, то же значение самого TypeScript, но во многих случаях TypeScript не смог масштабировать до самых больших кодовых баз. Разработчики, работающие в крупных проектах, могут испытывать длительное время загрузки и проверки, и должны выбирать между разумным временем запуска редактора или получением полного представления их исходного кода. Мы знаем, что разработчики любят, когда они могут с уверенностью переименовать переменные, найти все ссылки на определенную функцию, легко ориентироваться в кодовой базе и без промедления делать все эти вещи. Новые впечатления, основанные на ИИ, выигрывают от больших окон семантической информации, которые должны быть доступны с более плотными ограничениями задержки. Мы также хотим, чтобы быстрые сборники командной строки подтвердили, что вся ваша кодовая база находится в хорошей форме.

Чтобы достичь этих целей, мы начали работу над нативным портом компилятора и инструментов TypeScript. Нативная реализация будет радикально улучшить стартап редактора, сократить большую часть времени сборки в 10 раз и существенно снизить использование памятиПолем Переносив текущую кодовую базу, мы ожидаем, что сможем предварительно просмотреть собственную реализацию tsc Способен к командной строке Typechecking к середине 2015 года, с полным решением для сборки проектов и языковым сервисом к концу года.

Ты можешь Создайте и запустите код GO из нашего нового рабочего репокоторый предлагается по той же лицензии, что и существующая кодовая база TypeScript. Проверьте readme для инструкций о том, как построить и запустить tsc и языковой сервер, и увидеть краткое изложение того, что реализовано до сих пор. Мы будем публиковать регулярные обновления, поскольку новые функциональные возможности становятся доступными для тестирования.

Read more:  Еще один прыжок с парашютом закончился смертью, на этот раз для 65-летней женщины в Бельгии - AD

Насколько быстрее?

Наша родная реализация уже способна загружать многие популярные проекты TypeScript, включая Сам компилятор TypeScriptПолем Вот времена для бега tsc На некоторых популярных кодовых базах на GitHub различных размеров:

Кодовая база Размер (loc) Текущий Родной Ускорение
Против кода 1,505 000 77,8 с 7,5 с 10,4x
Драматург 356 000 11.1S 1,1 с 10.1x
Типр 270 000 17,5 с 1,3 с 13.5x
дата-фнс 104 000 6,5 с 0,7 с 9,5X
TRPC (сервер + клиент) 18 000 5,5 с 0,6 с 9.1x
Rxjs (наблюдаемый) 2100 1,1 с 0,1 с 11.0x

Несмотря на то, что мы еще не завершены, эти цифры являются репрезентативными для повышения производительности по порядку, вы увидите, как проверяют большинство кодовых баз.

Мы невероятно взволнованы возможностями, которые создает этот огромный повышение скорости. Особенности, которые когда -то казались вне досягаемости, теперь находятся в пределах понимания. Этот нативный порт сможет предоставить мгновенные, всеобъемлющие списки ошибок по всему проекту, поддержать более продвинутые рефактории и обеспечить более глубокие идеи, которые ранее были слишком дорогими для вычисления. Этот новый фонд выходит за рамки сегодняшнего опыта разработчиков и позволит следующему поколению инструментов ИИ для улучшения разработки, обеспечения новых инструментов, которые будут изучать, адаптировать и улучшать опыт кодирования.

Редактор скорость

Большинство времени разработчиков тратится в редакторах, и именно там производительность наиболее важна. Мы хотим, чтобы редакторы быстро загружали крупные проекты и быстро реагировали во все ситуации. Современные редакторы, такие как Visual Studio и Visual Studio Code, имеют отличную производительность, пока базовые языковые услуги также быстрые. Благодаря нашей родной реализации мы сможем предоставить невероятно быстрый опыт редактора.

Опять же, используя кодовую базу кода Visual Studio в качестве эталона, текущее время для загрузки всего проекта в редакторе на быстром компьютере составляет около 9,6 секунды. Это падает примерно до 1,2 секунды с службой родного языка, 8 -кратное улучшение времени загрузки проекта В сценариях редактора. То, что это переводится, является более быстрым опытом работы с момента, когда вы открываете свой редактор до своего первого клавиши в любой кодовой базе TypeScript. Мы ожидаем, что все проекты увидят этот уровень улучшения во время загрузки.

Read more:  Только одна полоса из четырех вновь открыта для движения на А13.

Общее использование памяти также, по -видимому, составляет примерно половину текущей реализации, хотя мы еще не активно не исследовали оптимизацию этого и рассчитывали реализовать дальнейшие улучшения. Отзывчивость редактора для всех операций по обслуживанию языка (включая списки завершения, быструю информацию, перейти к определению и найти все ссылки) также увидит значительный рост скорости. Мы также перейдем к протоколу языкового сервера (LSP), давнему инфраструктурному рабочему элементу, чтобы лучше согласовать нашу реализацию с другими языками.

Дорожная карта версий

Нашим последним выпуском TypeScript был TypeScript 5.8, с TypeScript 5.9 в ближайшее время. Кодовая база на основе JS продолжит разработку в серию 6.x, а TypeScript 6.0 внесет некоторые разработки и нарушения изменений в соответствии с предстоящей нативной кодовой базой.

Когда нативная кодовая база достигнет достаточного паритета с текущей типовой, мы будем отпустить ее как TypeScript 7.0Полем Это все еще находится в разработке, и мы будем объявлять о стабильности и функционах по мере их возникновения.

Ради ясности мы будем ссылаемся на них просто как TypeScript 6 (JS) и TypeScript 7 (Tain), поскольку это будет номенклатурой для обозримого будущего. Вы также можете увидеть нас на «Strada» (исходное кодовое имя Typescript) и «Corsa» (кодовое имя для этих усилий) во внутренних дискуссиях или комментариях кода.

В то время как некоторые проекты могут быть в состоянии переключаться на Typescript 7 после выпуска, другие могут зависеть от определенных функций API, устаревших конфигураций или других ограничений, которые требуют использования TypeScript 6. Распознавая важную роль TypeScript в экосистеме разработки JS, мы все равно будем поддерживать кодовую базу JS в строке 6.x, пока TypeScript 7+ достигнет достаточной зрелости и принятия.

Read more:  Проживая свою жизнь по одному удару за раз

Наша долгосрочная цель состоит в том, чтобы сохранить эти версии максимально точно выровненными, чтобы вы могли перейти на TypeScript 7, как только она соответствует вашим требованиям, или при необходимости возвращается к TypeScript 6.

Следующие шаги

В ближайшие месяцы мы расскажем больше об этой захватывающей работе, включая более глубокие взгляды на производительность, новый API компилятора, LSP и многое другое. Мы написали некоторые Часто задаваемые вопросы На GitHub Repo, чтобы ответить на некоторые вопросы, которые мы ожидаем. Мы также приглашаем вас присоединиться к нам для AMA в TypeScript Community Discord в 10 утра PDT | 5 часов вечера UTC 13 марта.

10 -кратное улучшение производительности представляет собой массовый скачок в опыте разработки TypeScript и JavaScript, поэтому мы надеемся, что вы столь же энтузиазма, как и за эти усилия!

2025-03-11 17:24:00


1741775751
#раз #быстрее #TypeScript #TypeScript

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.