[過去ログ] シェルスクリプト総合 その31 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
715
(1): デフォルトの名無しさん [sage] 2019/10/01(火) 18:59:48.82 ID:8eIOCDAd(4/18) AAS
>>712
712(1): デフォルトの名無しさん [sage] 2019/10/01(火) 16:54:32.38 ID:8eIOCDAd(2/18) AAS
なるほど。ksh(だけが?)がなんか賢いかな。zsh他も差がある
zsh他も差があるは、>>709
709(2): デフォルトの名無しさん [sage] 2019/10/01(火) 16:40:08.47 ID:8eIOCDAd(1/18) AAS
hoge () {
echo "Hello"
}

for i in $(seq 1000); do
hoge
a=$(hoge)
done

myfunc と a=$(myfunc) の実行時間の差はなんなん?標準出力を横取りするためだけにしてはコストが高いかな
簡単に思いつくのは横取りするためパイプでで別プロセスにしなきゃとかかな?
で体感できる差があるが正しいか
kshでも差があるね。ループ数増やせば体感できるほどの差となるね
717
(1): デフォルトの名無しさん [sage] 2019/10/01(火) 19:25:21.59 ID:fust4gpU(2/9) AAS
遅い原因の本質は標準出力のキャプチャじゃないから
この二つでも違いがでる

hoge () {
 :
}

for i in $(seq 1000); do
 hoge
 (hoge)
done

>>715
> kshでも差があるね。ループ数増やせば体感できるほどの差となるね
そうなんだよね。サブシェルのコストは以外と大きい。
だから変数に入れて使うことが目的とした関数は以下のように
グローバル変数を使って返したほうがずっと速いわけさ

hoge () {
RET=Hello
}

for i in $(seq 1000); do
hoge
a=$RET
done
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s