File: 201903-string-build.sh

package info (click to toggle)
ble.sh 0.4.0~git20250321.d4c812b-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 12,516 kB
  • sloc: sh: 71,367; awk: 1,316; cpp: 750; ansic: 186; javascript: 43; makefile: 35
file content (70 lines) | stat: -rwxr-xr-x 1,191 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env bash

if [[ ! ${BLE_VERSION-} ]]; then
  source ../../src/benchmark.sh
fi

#------------------------------------------------------------------------------

function concat.str {
  local a out=
  for a in {1..1000}; do
    out=$out$a
  done
  ret=$out
}
function concat.ret {
  local a; ret=
  for a in {1..1000}; do
    ret=$ret$a
  done
}
function concat.arr {
  local a arr i=0; arr=()
  for a in {1..1000}; do
    arr[i++]=$a
  done
  ret="${arr[*]}"
}

function measure {
  local ret=
  ble-measure concat.str
  ble-measure concat.ret
  ble-measure concat.arr
}
measure

#------------------------------------------------------------------------------

function concatB.str {
  local a out= arr2; arr2=()
  for a in {1..1000}; do
    arr2[i%10]=$a
    out=$out$a
  done
  ret=$out
}
function concatB.ret {
  local a arr2; ret= arr2=()
  for a in {1..1000}; do
    arr2[i%10]=$a
    ret=$ret$a
  done
}
function concatB.arr {
  local a arr i=0 arr2; arr=() arr2=()
  for a in {1..1000}; do
    arr2[i%10]=$a
    arr[i++]=$a
  done
  ret="${arr[*]}"
}

function measureB {
  local ret=
  ble-measure concatB.str
  ble-measure concatB.ret
  ble-measure concatB.arr
}
measureB