D1231.ble-measure-calibration.sh (2142B)
1 # -*- mode: sh; mode: sh-bash -*- 2 3 f1() { local a; ble-measure -q 'a=1'; } 4 f2() { f1; } 5 f3() { f2; } 6 f4() { f3; } 7 f5() { f4; } 8 f6() { f5; } 9 f7() { f6; } 10 f8() { f7; } 11 f9() { f8; } 12 fA() { f9; } 13 ble-measure -q a=1; echo $nsec 14 f1; echo $nsec 15 f2; echo $nsec 16 f3; echo $nsec 17 f4; echo $nsec 18 f5; echo $nsec 19 f6; echo $nsec 20 f7; echo $nsec 21 f8; echo $nsec 22 f9; echo $nsec 23 fA; echo $nsec 24 25 # 結果を見ると f1 は短いがそれより増えると急に遅くなる。 26 # 27 # S1 S5 D5 D1 28 # -- ---- ---- ---- ---- 29 # NF - - - -123 30 # f1 44 33 -72 35 31 # f2 852 883 19 82 32 # f3 877 907 77 97 33 # f4 875 944 122 167 34 # f5 953 991 207 232 35 # f6 1035 1040 254 271 36 # f7 1170 1102 297 337 37 # f8 1222 1196 354 395 38 # f9 1310 1222 395 466 39 # fA 1357 1314 482 536 40 # 41 # S1, S5 ... サブシェルで source した時。 42 # S1 は _ble_measure_count=1 で 43 # S5 は _ble_measure_count=5 である。 44 # D5 ... 直接 source した時。 45 # _ble_measure_count=5 で計測した。 46 # 47 # 分かる事は、サブシェルで評価している時は入れ子の数が1回だと速いが、 48 # 関数が一段でも入ると急に遅くなってしまう。 49 # 直接実行している時には線形に増えている気がする。 50 51 #------------------------------------------------------------------------------ 52 # 上記で調べた関数入れ子の傾きはコマンドが違っても同じだろうか。 53 54 echo a=1 b=2 55 56 g1() { local a b; ble-measure -q 'a=1 b=2'; } 57 g2() { g1; } 58 g3() { g2; } 59 g4() { g3; } 60 g5() { g4; } 61 g6() { g5; } 62 g7() { g6; } 63 g8() { g7; } 64 g9() { g8; } 65 gA() { g9; } 66 ble-measure -q a=1 b=2; echo $nsec 67 g1; echo $nsec 68 g2; echo $nsec 69 g3; echo $nsec 70 g4; echo $nsec 71 g5; echo $nsec 72 g6; echo $nsec 73 g7; echo $nsec 74 g8; echo $nsec 75 g9; echo $nsec 76 gA; echo $nsec 77 78 # SC SP 79 # ---- ---- 80 # g0 220 281 81 # g1 790 429 82 # g2 790 459 83 # g3 892 517 84 # g4 941 583 85 # g5 1078 660 86 # g6 1077 684 87 # g7 1160 688 88 # g8 1221 745 89 # g9 1290 936 90 # gA 1397 868 91 # 92 # SC: 'a=1; b=2' 93 # SP: 'a=1 b=2' 94 # どうも関数の中身によって異なる様だ…。 95 # でもグラフに書いてみると (g0 を除けば) 傾きは同じ様だ。