blog.euxn.me

shell のチルダと$HOMEのどちらが解決が早いか雑に試したら$HOMEの方が早かった

2017-11-19 Sun.

以下検証結果。文字列に変更が加わっているので参照渡しではないはず……。

tilda.sh
1for i in $(seq 1 1000000); do
2 str=~/tmp
3done
4echo $str
1~/s/g/e/s/shell ❯❯❯ time sh tilda.sh
2/Users/yuta/tmp
3sh tilda.sh 4.28s user 0.06s system 100% cpu 4.305 total
4~/s/g/e/s/shell ❯❯❯ time sh tilda.sh
5/Users/yuta/tmp
6sh tilda.sh 4.29s user 0.06s system 100% cpu 4.318 total
7~/s/g/e/s/shell ❯❯❯ time sh tilda.sh
8/Users/yuta/tmp
9sh tilda.sh 4.37s user 0.06s system 100% cpu 4.397 total
10~/s/g/e/s/shell ❯❯❯ time sh tilda.sh
11/Users/yuta/tmp
12sh tilda.sh 4.30s user 0.06s system 100% cpu 4.322 total
13~/s/g/e/s/shell ❯❯❯ time sh tilda.sh
14/Users/yuta/tmp
15sh tilda.sh 4.68s user 0.10s system 99% cpu 4.812 total
home.sh
1for i in $(seq 1 1000000); do
2 str=$HOME/tmp
3done
4echo $str
1~/s/g/e/s/shell ❯❯❯ time sh home.sh
2/Users/yuta/tmp
3sh home.sh 4.23s user 0.06s system 100% cpu 4.252 total
4~/s/g/e/s/shell ❯❯❯ time sh home.sh
5/Users/yuta/tmp
6sh home.sh 4.19s user 0.06s system 100% cpu 4.207 total
7~/s/g/e/s/shell ❯❯❯ time sh home.sh
8/Users/yuta/tmp
9sh home.sh 4.14s user 0.06s system 101% cpu 4.157 total
10~/s/g/e/s/shell ❯❯❯ time sh home.sh
11/Users/yuta/tmp
12sh home.sh 4.28s user 0.06s system 101% cpu 4.303 total
13~/s/g/e/s/shell ❯❯❯ time sh home.sh
14/Users/yuta/tmp
15sh home.sh 4.27s user 0.06s system 100% cpu 4.299 total
Other Works
2024-12-01 Sun.
OpenAPI Spec を出力できる DSL、TypeSpec の実践例
- ドワンゴ教育サービス開発者ブログ

2024-11-16 Sat.
型付き API リクエストを実現するいくつかの手法とその選択
- TSKaigi Kansai 2024

2024-09-10 Tue.
corepack が標準同梱じゃなくなる未来、 mise でパッケージマネージャを管理する
- Zenn

2024-09-10 Tue.
言語環境の管理は *env や *vm を超えて、 mise へ
- Zenn

2024-06-28 Fri.
TypeSpec を使い倒してる
- Kyoto.js 22

2024-05-11 Sat.
Powerfully Typed TypeScript
- TSKaigi 2024

2024-05-10 Fri.
pnpm の node_modules を探検して理解しよう
- ドワンゴ教育サービス開発者ブログ

2024-03-17 Sun.
neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
- Zenn

2023-12-20 Wed.
レガシーブラウザ向けのビルドオプションを剪定する
- ドワンゴ教育サービス開発者ブログ

2023-05-26 Fri.
Next.js で dynamic import を使い Client だけで動かす Component を実現する
- Zenn

2023-05-02 Tue.
Node.js でファイル名から拡張子を取り除く/取り出すために path.parse を使う
- Zenn

2023-02-27 Mon.
WSL2 で外部からアクセス可能にするために bridge mode を有効にする
- Zenn

2023-01-26 Thu.
init.vim & dein から init.lua & lazy.nvim へ、シンプル設定で移行した
- Zenn

2023-01-13 Fri.
kindle の本をブクログ形式の csv でエクスポートする@2023初春
- Zenn

2023-01-10 Tue.
自宅サーバの移設に際して docker から nerdctl に移行した
- Zenn

2023-01-10 Tue.
自宅サーバを rootless に移行した際のトラブル対応
- Zenn

2021-11-11 Thu.
並列実行した Promise で throw されても全てハンドルしたいときの方法(allSettled, finally, etc...)
- Zenn