kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

timing.sh (1593B)


      1 # Shared wall-clock helpers for Tier 1 shell wrappers.
      2 
      3 t1_now_ms() {
      4     perl -MTime::HiRes=time -e 'printf "%.0f\n", time() * 1000' 2>/dev/null ||
      5         printf '%s000\n' "$(date +%s 2>/dev/null || printf '0')"
      6 }
      7 
      8 t1_elapsed_ms() {
      9     t1_em_start=$1
     10     t1_em_end=$2
     11     t1_em_dur=$((t1_em_end - t1_em_start))
     12     [ "$t1_em_dur" -lt 0 ] && t1_em_dur=0
     13     printf '%s\n' "$t1_em_dur"
     14 }
     15 
     16 t1_slow_timing_enabled() {
     17     case "${KIT_TIER1_SLOW_TIMING:-0}" in
     18         1|yes|true|on) return 0 ;;
     19         *) return 1 ;;
     20     esac
     21 }
     22 
     23 t1_parallel_jobs() {
     24     t1_pj_requested="${KIT_TIER1_JOBS:-${KIT_TEST_JOBS:-auto}}"
     25     case "$t1_pj_requested" in
     26         ""|1) printf '1\n'; return ;;
     27         auto)
     28             t1_pj_n=$(getconf _NPROCESSORS_ONLN 2>/dev/null || true)
     29             [ -n "$t1_pj_n" ] || t1_pj_n=$(sysctl -n hw.ncpu 2>/dev/null || true)
     30             case "$t1_pj_n" in ''|*[!0-9]*) t1_pj_n=1 ;; esac
     31             [ "$t1_pj_n" -gt 6 ] && t1_pj_n=6
     32             [ "$t1_pj_n" -lt 1 ] && t1_pj_n=1
     33             printf '%s\n' "$t1_pj_n"
     34             return ;;
     35         *[!0-9]*)
     36             printf 'invalid KIT_TIER1_JOBS=%s\n' "$t1_pj_requested" >&2
     37             return 2 ;;
     38         *)
     39             [ "$t1_pj_requested" -lt 1 ] && t1_pj_requested=1
     40             printf '%s\n' "$t1_pj_requested" ;;
     41     esac
     42 }
     43 
     44 t1_parallel_running_count() {
     45     jobs -pr | wc -l | tr -d '[:space:]'
     46 }
     47 
     48 t1_parallel_wait_for_slot() {
     49     t1_pws_max=$1
     50     while [ "$(t1_parallel_running_count)" -ge "$t1_pws_max" ]; do
     51         sleep 0.05
     52     done
     53 }
     54 
     55 t1_step_id() {
     56     printf '%s' "$1" | tr -c 'A-Za-z0-9_.-' '_'
     57 }