Huh? If you don't mind freezing your sys for a minute (or 3)...
Code:
alias tokentest {
  var %char = 25, %endchar = 40, %iterations = 100000, %items = ••• ––– ˜˜˜ ™™™ œœœ

  ECHO -agtc info * Test of %iterations $!istok-iterations on chars $!chr( $+ %char $+ ) to $!chr( $+ %endchar $+ )
  ; loop chars
  while (%char <= %endchar) {
    ; build string of %items
    var %nr = 1, %string
    while $gettok(%items,%nr,32) {
      var %string = $addtok(%string,$v1,%char)
      inc %nr
    }
    ; bench: iterative istok on string of %items
    var %a = 1, %start = $ticks
    while (%a <= %iterations) {
      .ECHO -q $istok(%string,˜˜˜,%char)
      inc %a
    }
    ECHO -ag $!chr( $+ %char $+ ): $calc($ticks - %start) ticks
    inc %char
  }

  ECHO -agtc info * done.
}

...my bench:
[12:18:43] * Test of 100000 $istok-iterations on chars $chr(25) to $chr(40)
$chr(25): 4234 ticks
$chr(26): 4204 ticks
$chr(27): 4187 ticks
$chr(28): 4188 ticks
$chr(29): 4187 ticks
$chr(30): 4188 ticks
$chr(31): 4187 ticks
$chr(32): 4172 ticks
$chr(33): 4187 ticks
$chr(34): 4266 ticks
$chr(35): 4188 ticks
$chr(36): 4187 ticks
$chr(37): 4187 ticks
$chr(38): 4188 ticks
$chr(39): 4187 ticks
$chr(40): 4172 ticks
[12:19:50] * done.

confused

...nothing but the usual variation. Note that (at least on my sys, and for less iterations) the "first" char always takes a bit longer (whatever char processed) - due to the way my sys allocates ressources. That's why I placed chr(32) right in the middle.