sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

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 を除けば) 傾きは同じ様だ。