Rollup-plugin-typescript2: μΊμ‹œλŠ” 졜근 버전(0.19.0λΆ€ν„° μ‹œμž‘)μ—μ„œ λ²ˆλ“€λ§μ„ 더 λΉ λ₯΄κ²Œ λ§Œλ“œλŠ” λŒ€μ‹  더 느리게 λ§Œλ“­λ‹ˆλ‹€.

에 λ§Œλ“  2019λ…„ 02μ›” 15일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: ezolenko/rollup-plugin-typescript2

이 ν”ŒλŸ¬κ·ΈμΈμ˜ λΉŒλ“œ μΊμ‹œλŠ” νŒ¨ν‚€μ§€ 버전 0.19.0λΆ€ν„° μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” λŒ€μ‹  μ„±λŠ₯을 μ•…ν™”μ‹œν‚€λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 우리 νšŒμ‚¬μ—μ„œ λͺ¨λ“  κ²ƒμ˜ μ΅œμ‹  νŒ¨ν‚€μ§€ 버전을 μ‚¬μš©ν•˜λ„λ‘ λΉŒλ“œ 슀크립트λ₯Ό μ—…κ·Έλ ˆμ΄λ“œν•  λ•Œ 이것을 μ•Œμ•„μ°¨λ ΈμŠ΅λ‹ˆλ‹€. ezolenko/rollup-plugin-typescript2 버전 0.12.xμ—μ„œ 0.19.2둜 μ—…λ°μ΄νŠΈ 포함. 이둜 인해 λ²ˆλ“€λ§ μ‹œκ°„μ΄ μ•½ 10λ°° μ¦κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 2x(λ¬ΆμŒλ‹Ή μ•½ 3μ΄ˆμ—μ„œ 6-8초둜).

λ‚˜λŠ” λ‚΄ 짧은 쑰사λ₯Ό λ‹Ήμ‹ κ³Ό κ³΅μœ ν•  것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 보여주기 μœ„ν•΄ μž‘μ€ 벀치마크( stakx/rollup-plugin-typescript2-benchmark )λ₯Ό μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘  이것은 맀우 μ •ν™•ν•œ λ²€μΉ˜λ§ˆν¬λŠ” μ•„λ‹ˆμ§€λ§Œ clean μ˜΅μ…˜μ„ false 것이 λ²ˆλ“€λ§ μ‹œκ°„μ— 뢀정적인 영ν–₯을 λ―ΈμΉ˜λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. μ‚¬μš©ν•  μ€€λΉ„κ°€ 된 μΊμ‹œ).

μ•„λž˜μ—μ„œ μΈ‘μ •ν•œ 값을 μž¬ν˜„ν•˜κ² μŠ΅λ‹ˆλ‹€. μ‹€μ œ 벀치마크 μ½”λ“œλŠ” 링크된 리포지토리λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

νŒ¨ν‚€μ§€ 버전 | μ‹€ν–‰ | clean: true [λ°€λ¦¬μ΄ˆ] | clean: false [λ°€λ¦¬μ΄ˆ] | clean: false ÷ clean: true [%]
:-:|:-:|--:|--:|--:
0.15.0 | 1 | 836 | 670 |
| | 2 | 840 | 638 |
| | 3 | 884 | 574 |
| | 평균 | 853 | 627 | 74%
0.16.0 | 1 | 841 | 576 |
| | 2 | 816 | 607 |
| | 3 | 834 | 581 |
| | 평균 | 830 | 588 | 71%
0.17.0 | 1 | 861 | 582
| | 2 | 839 | 603
| | 3 | 835 | 594
| | 평균 | 845 | 593 | 70%
0.18.0 | 1 | 1147 | 998
| | 2 | 1192 | 882
| | 3 | 1207 | 882
| | 평균 | 1182 | 921 | 78%
0.18.1 | 1 | 815 | 617
| | 2 | 837 | 590
| | 3 | 823 | 590
| | 평균 | 825 | 599 | 73%
0.19.0 | 1 | 828 | 896
| | 2 | 803 | 897
| | 3 | 836 | 901
| | 평균 | 822 | 898 | 109%
0.19.1 | 1 | 850 | 913
| | 2 | 825 | 888
| | 3 | 799 | 881
| | 평균 | 825 | 894 | 108%
0.19.2 | 1 | 1020* | 888
| | 2 | 816 | 902
| | 3 | 826 | 890
| | 평균 | 887 | 893 | 101%

μΊμ‹œλ₯Ό μ±„μš°λ©΄( clean: false clean: false ) μ΅œλŒ€ 0.18.1κΉŒμ§€ λ²ˆλ“€λ§ μ‹œκ°„( clean: false λŠ” μ‹€μ œλ‘œ λ²ˆλ“€λ§ μ‹œκ°„μ„ μ•½ 10%. (λ˜ν•œ *둜 ν‘œμ‹œλœ 이상값은 0.19.2κ°€ μ‹€μ œλ³΄λ‹€ 더 λ‚˜μ€ μ„±λŠ₯을 λ‚˜νƒ€λ‚΄λ„λ‘ ν•©λ‹ˆλ‹€.)

이 μΊμ‹œ 속도 μ €ν•˜κ°€ 특히 clean: false κ°€ ν˜„μž¬ κΈ°λ³Έκ°’ 이기 λ•Œλ¬Έμ— μƒλ‹Ήνžˆ μœ κ°μž…λ‹ˆλ‹€.

(μΆ”μ‹ : clean: false 이 κ·Έ 자체둜 이 ν”ŒλŸ¬κ·ΈμΈμ˜ μ„±λŠ₯을 μ•…ν™”μ‹œν‚€κΈ°μ— μΆ©λΆ„ν•˜λ‹€κ³  λ§ν•˜λŠ” 것이 μ•„λ‹˜μ„ λΆ„λͺ…νžˆ ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ €λŠ” λ‹¨μˆœνžˆ 이것을 μ•Œμ•„μ°¨λ¦¬κ³  ν˜ΈκΈ°μ‹¬μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. 더 μ‚΄νŽ΄λ³Ό κ°€μΉ˜κ°€ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. λ©΄λ°€νžˆ.)

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ§€κΈˆ npm의 0.19.3μ—μ„œ

λͺ¨λ“  6 λŒ“κΈ€

κ°μ‚¬ν•©λ‹ˆλ‹€ λ‹€μŒμ£Όμ— ν•œλ²ˆ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. 일반적으둜 clean: true λŠ” μΊμ‹œλ₯Ό μ‚¬μš©ν•œ 첫 번째 싀행보닀 μ•½κ°„ 더 λΉ λ₯΄κ³  μΊμ‹œλ₯Ό μ‚¬μš©ν•œ 두 번째 싀행보닀 훨씬 느릴 κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€. κΉ¨λ—ν•œ μ‹œμŠ€ν…œμ—μ„œ 첫 번째 싀행을 λΉ„κ΅ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆκΉŒ?

μ œμ–΄ν•  또 λ‹€λ₯Έ λ³€μˆ˜λŠ” typescript 및 λ‘€μ—… λ²„μ „μž…λ‹ˆλ‹€.

clean: true λ₯Ό μ‚¬μš©ν•  λ•Œ μΊμ‹œ 생성을 μ™„μ „νžˆ μ œκ±°ν•˜μ—¬ λΉŒλ“œ 쀑에 μˆ˜ν–‰λ˜λŠ” μž‘μ—…μ΄ μ€„μ–΄λ“€μ—ˆλ˜ 버전을 μžŠμ–΄λ²„λ¦° μˆ˜μ • 사항이 μžˆμŠ΅λ‹ˆλ‹€.

Btw, 그것은 μ•„λ§ˆλ„ κΉ¨λ—ν•œ 체크아웃(λͺ¨λ“  정상적인 λΉ„ CI 배포 ꡬ성이 μˆ˜ν–‰ν•΄μ•Ό 함)을 μˆ˜ν–‰ν•˜λŠ” λΉŒλ“œ 머신이 μΊμ‹œλ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ©΄ 속도가 μ•½κ°„ 빨라질 수 μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

κΉ¨λ—ν•œ μ‹œμŠ€ν…œμ—μ„œ 첫 번째 싀행을 λΉ„κ΅ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆκΉŒ?

λ‚΄ λ²€μΉ˜λ§ˆν¬λŠ” 두 가지 싀행을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  • 첫 번째 것은 rimraf μ‚¬μš©ν•˜μ—¬ μΊμ‹œκ°€ μˆ˜λ™μœΌλ‘œ μ§€μ›Œμ§„ 후에 μ‹€ν–‰λ©λ‹ˆλ‹€. 이 싀행은 μΈ‘μ •λ˜μ§€ μ•ŠμœΌλ©° μƒˆλ‘œμš΄ μΊμ‹œλ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.

  • 두 번째 μ‹€ν–‰( clean: false 경우 μƒˆ μΊμ‹œλ₯Ό ν™œμš©ν•  수 있음)이 μΈ‘μ •λ©λ‹ˆλ‹€.

μ•Œκ² μŠ΅λ‹ˆλ‹€. 19.2μ—μ„œ μΊμ‹œκ°€ 항상 μ–΄λ–€ 이유둜 λˆ„λ½λœ 것 κ°™μŠ΅λ‹ˆλ‹€.

확인 λ§ˆμŠ€ν„°μ—μ„œ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ μˆ˜μ • 사항이 μ‹œκ³„ λͺ¨λ“œμ— μ–΄λ–€ 영ν–₯을 λ―ΈμΉ˜λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€.

μ§€κΈˆ npm의 0.19.3μ—μ„œ

λŒ€λ°•! μ΄λ ‡κ²Œ 빨리 μ²˜λ¦¬ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈκ°€ κ·Έλ ‡κ²Œ 잘 μœ μ§€λ˜λŠ” 것을 λ³΄λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. :+1:

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰