プレイグラウンド、サンドボックス、使い捨てスクリプト置き場
0

Configure Feed

Select the types of activity you want to include in your feed.

update

authored by

Kohei Watanabe and committed by
GitHub
(Apr 16, 2022, 12:42 AM UTC) 7c856c88 94b9f43c

+62 -3
+58 -3
tsm-vs-esno/README.md
··· 2 2 3 3 [lukeed/tsm](https://github.com/lukeed/tsm) と [antfu/esno](https://github.com/antfu/esno) の比較 4 4 5 - 環境: node v17.9.0 5 + 環境: 6 + 7 + - Node v17.9.0 8 + - GitHub Codespaces 4-core/8GB RAM/32GB 6 9 7 10 サンプルコード: 8 11 ··· 30 33 console.log(message); 31 34 ``` 32 35 36 + ```ts 37 + // dummy 38 + import "typescript"; 39 + const message: string = "hello world"; 40 + console.log(message); 41 + ``` 42 + 33 43 ```sh 34 44 time npx --call 'bash -c "for i in {1..10}; do ./hello-world.tsm.ts > /dev/null 2>&1; done"' 35 45 time npx --call 'bash -c "for i in {1..10}; do ./hello-world.esno.ts > /dev/null 2>&1; done"' 36 46 time npx --call 'bash -c "for i in {1..10}; do ./hello-world.esmo.ts > /dev/null 2>&1; done"' 47 + time npx --call 'bash -c "for i in {1..10}; do node -r tsm hello-world.ts > /dev/null 2>&1; done"' 48 + time npx --call 'bash -c "for i in {1..10}; do node --loader tsm hello-world.ts > /dev/null 2>&1; done"' 49 + time npx --call 'bash -c "for i in {1..10}; do node -r esbuild-register hello-world.ts > /dev/null 2>&1; done"' 37 50 ``` 38 51 39 52 ## 結果 40 53 41 - サイズ: esno のほうが依存関係が多いので若干大きいが esbuild 本体に比べれば誤差程度 54 + サイズ: esno のほうが、依存関係が多いのでややサイズ大きいが esbuild 本体に比べれば誤差程度 55 + 56 + パフォーマンス: tsm のほうがパフォーマンス高い 57 + 58 + ```console 59 + $ time npx --call 'bash -c "for i in {1..10}; do ./hello-world.tsm.ts > /dev/null 2>&1; done"' 60 + 61 + real 0m4.848s 62 + user 0m4.608s 63 + sys 0m0.695s 64 + 65 + $ time npx --call 'bash -c "for i in {1..10}; do ./hello-world.esno.ts > /dev/null 2>&1; done"' 66 + 67 + real 0m5.261s 68 + user 0m4.765s 69 + sys 0m0.856s 70 + 71 + $ time npx --call 'bash -c "for i in {1..10}; do ./hello-world.esmo.ts > /dev/null 2>&1; done"' 72 + 73 + real 0m6.468s 74 + user 0m6.321s 75 + sys 0m0.964s 76 + 77 + $ time npx --call 'bash -c "for i in {1..10}; do node -r tsm hello-world.ts > /dev/null 2>&1; done"' 78 + 79 + real 0m3.804s 80 + user 0m3.430s 81 + sys 0m0.513s 42 82 43 - パフォーマンス: 83 + $ time npx --call 'bash -c "for i in {1..10}; do node --loader tsm hello-world.ts > /dev/null 2>&1; done"' 84 + 85 + real 0m4.162s 86 + user 0m3.971s 87 + sys 0m0.683s 88 + 89 + $ time npx --call 'bash -c "for i in {1..10}; do node -r esbuild-register hello-world.ts > /dev/null 2>&1; done"' 90 + 91 + real 0m4.422s 92 + user 0m4.113s 93 + sys 0m0.694s 94 + ``` 95 + 96 + ## 感想 97 + 98 + ここまで見た範囲では tsm 優位か
+4
tsm-vs-esno/hello-world.ts
··· 1 + // dummy 2 + import "typescript"; 3 + const message: string = "hello world"; 4 + console.log(message);