Warning: file_put_contents(aCache/aDaily/post/htmlshit/-3919-3920-): Failed to open stream: No space left on device in /var/www/tgoop/post.php on line 50
Будни разработчика@htmlshit P.3919
HTMLSHIT Telegram 3919
#инструмент дня

История от подписчика!

На иллюстрациях — время прогона тестов, стало и было. Как добиться подобного?

Сменой тулинга, конечно же!

Переход с ts-jest на @swc/jest даёт ощутимый прирост скорости. ts-jest завязан на стандартный TypeScript-компилятор. Он работает в одном потоке, выполняет полноценную проверку типов и в целом довольно медленно трансформирует файлы. В больших проектах это приводит к заметной задержке перед запуском любого тестового набора.

@swc/jest использует SWC — транспайлер, написанный на Rust. Его ключевые особенности:

* трансформация работает в нативном коде без виртуальной машины;
* парсер и трансформер многопоточные;
* типы не проверяются, а просто удаляются;
* преобразование максимально близко к «быстрому проходу».

Для тестов это идеальный сценарий: типизация проверяется отдельно, а от тестового раннера требуется лишь быстрое преобразование модулей.

Дополнительно ускорить прогон помогает параллелизация. В GitLab CI достаточно указать:


parallel: 3


...и тесты будут запускаться одновременно в нескольких процессах.

Результаты после перехода на @swc/jest:

* 54 тестовых набора, 1018 тестов, 100 снапшотов — 4.48 секунды.
* Меньшая выборка — 13 наборов, 258 тестов — 4.23 секунды.

Ускорение достигается только заменой трансформера: многопоточная трансформация в SWC + отсутствие тайпчекера даёт сразу заметный выигрыш без изменений в самих тестах.

Какой тулинг у вас, котаны?

#swc #jest #typescript
1👍8



tgoop.com/htmlshit/3919
Create:
Last Update:

#инструмент дня

История от подписчика!

На иллюстрациях — время прогона тестов, стало и было. Как добиться подобного?

Сменой тулинга, конечно же!

Переход с ts-jest на @swc/jest даёт ощутимый прирост скорости. ts-jest завязан на стандартный TypeScript-компилятор. Он работает в одном потоке, выполняет полноценную проверку типов и в целом довольно медленно трансформирует файлы. В больших проектах это приводит к заметной задержке перед запуском любого тестового набора.

@swc/jest использует SWC — транспайлер, написанный на Rust. Его ключевые особенности:

* трансформация работает в нативном коде без виртуальной машины;
* парсер и трансформер многопоточные;
* типы не проверяются, а просто удаляются;
* преобразование максимально близко к «быстрому проходу».

Для тестов это идеальный сценарий: типизация проверяется отдельно, а от тестового раннера требуется лишь быстрое преобразование модулей.

Дополнительно ускорить прогон помогает параллелизация. В GitLab CI достаточно указать:


parallel: 3


...и тесты будут запускаться одновременно в нескольких процессах.

Результаты после перехода на @swc/jest:

* 54 тестовых набора, 1018 тестов, 100 снапшотов — 4.48 секунды.
* Меньшая выборка — 13 наборов, 258 тестов — 4.23 секунды.

Ускорение достигается только заменой трансформера: многопоточная трансформация в SWC + отсутствие тайпчекера даёт сразу заметный выигрыш без изменений в самих тестах.

Какой тулинг у вас, котаны?

#swc #jest #typescript

BY Будни разработчика





Share with your friend now:
tgoop.com/htmlshit/3919

View MORE
Open in Telegram


Telegram News

Date: |

As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Joined by Telegram's representative in Brazil, Alan Campos, Perekopsky noted the platform was unable to cater to some of the TSE requests due to the company's operational setup. But Perekopsky added that these requests could be studied for future implementation. Telegram is a leading cloud-based instant messages platform. It became popular in recent years for its privacy, speed, voice and video quality, and other unmatched features over its main competitor Whatsapp.
from sg


Telegram Будни разработчика
FROM Singapore