Updated bvar_bench3

For sure it looks like the $bvar(&var,offset,M) is much slower when showing the byte numbers than when it shows the .text output. This updated alias is extremely faster than bvar_bench2 by making 1 slight change. Instead of requesting a list of byte value integers from $bvar(&var,offset,M) directly, it instead /bcopy's the M range to a different &binvar, then uses $encode to encode it to mime, then outputs the mime string using the .text property.

The combined time for the /bopyc + $encode +$bvar().text now 10x faster than $bvar() for the M=2560 length, and instead of seeing many-shorter-strings being faster, I'm now seeing the expected behavior of M=100 being slower due to the overhead of making many more calls to $bvar(). And now since the text mime string is now 4/3rd as long as M instead of being a list of integers that's 4x as long, it's now safe to use M=7680, and the M=7680 output from bvar_bench3 is now around 20x faster than the M=2560 output from bvar_bench3, even though those are both receiving identical string lengths and the M=2560 is making only 3x as many calls to $bvar.

Code
time M = 2560 loops 390 bvar string length: 3416 ticks: 89 vs baseline 100%
time M = 2048 loops 488 bvar string length: 2732 ticks: 116 vs baseline 130.3%
time M = 1037 loops 964 bvar string length: 1384 ticks: 197 vs baseline 221.3%
time M = 1000 loops 1000 bvar string length: 1336 ticks: 169 vs baseline 189.8%
time M = 500 loops 2000 bvar string length: 668 ticks: 263 vs baseline 295.5%
time M = 400 loops 2500 bvar string length: 536 ticks: 274 vs baseline 307.8%
time M = 300 loops 3333 bvar string length: 400 ticks: 345 vs baseline 387.6%
time M = 250 loops 4000 bvar string length: 336 ticks: 414 vs baseline 465.1%
time M = 240 loops 4166 bvar string length: 320 ticks: 418 vs baseline 469.6%
time M = 220 loops 4545 bvar string length: 296 ticks: 471 vs baseline 529.2%
time M = 200 loops 5000 bvar string length: 268 ticks: 503 vs baseline 565.1%
time M = 180 loops 5555 bvar string length: 240 ticks: 546 vs baseline 613.4%
time M = 160 loops 6250 bvar string length: 216 ticks: 611 vs baseline 686.5%
time M = 140 loops 7142 bvar string length: 188 ticks: 693 vs baseline 778.6%
time M = 120 loops 8333 bvar string length: 160 ticks: 836 vs baseline 939.3%
time M = 110 loops 9090 bvar string length: 148 ticks: 908 vs baseline 1020.2%
time M = 100 loops 10000 bvar string length: 136 ticks: 998 vs baseline 1121.3%
time M = 90 loops 11111 bvar string length: 120 ticks: 1096 vs baseline 1231.4%
time M = 80 loops 12500 bvar string length: 108 ticks: 1235 vs baseline 1387.6%
time M = 7680 loops 130 bvar string length: 10240 ticks: 47 vs baseline 52.8%

alias bvar_bench3 {
  var %digits 3
  var -s %list 2560 2048 1037 1000 500 400 300 250 240 220 200 180 160 140 120 110 100 90 80 7680, %first $gettok(%list,1,32)
  while ($gettok(%list,1,32) != $null) {
    var %M $v1, %number $str(1,%digits) , %size 10 ^ 6, %loops $ceil($calc(%size // %M)) , %j %loops,%offset 1
    bunset &v | bset &v %size 0 | breplace &v 0 %number | var %t $ticksqpc
    while (%loops) {
      bcopy -c &v2 1 &v 1 %M | noop $encode(&v2,bm)
      var %a $bvar(&v2,1-).text
      inc %offset %M
      dec %loops
    }
    var %time $calc($ticksqpc - %t) | if (%M == %first) var %baseline %time
    echo -a time M = %M loops %J bvar string length: $len(%a) ticks: %time vs baseline $calc(1000*%time //%baseline /10) $+ %
    var %list $gettok(%list,2-,32)
  }
}