Artifact
8a69dcc7bd773e9f1f2cdd8bfe0d9a417e3dc941:
Attachment "match-bench.tcl" to
ticket [a4a7f2abd3]
added by
aku
2017-05-02 05:53:39.
0000: 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 74 #!/usr/bin/env t
0010: 63 6c 73 68 0a 23 20 68 74 74 70 73 3a 2f 2f 72 clsh.# https://r
0020: 65 73 65 61 72 63 68 2e 73 77 74 63 68 2e 63 6f esearch.swtch.co
0030: 6d 2f 67 6c 6f 62 0a 23 0a 23 20 28 28 61 2a 29 m/glob.#.# ((a*)
0040: 5e 6e 29 62 0a 23 20 61 5e 31 30 30 0a 0a 70 75 ^n)b.# a^100..pu
0050: 74 73 20 22 54 63 6c 20 5b 69 6e 66 6f 20 70 61 ts "Tcl [info pa
0060: 74 63 68 6c 65 76 65 6c 5d 22 0a 0a 73 65 74 20 tchlevel]"..set
0070: 63 61 6e 64 69 64 61 74 65 20 5b 73 74 72 69 6e candidate [strin
0080: 67 20 72 65 70 65 61 74 20 61 20 31 30 30 5d 0a g repeat a 100].
0090: 0a 66 6f 72 20 7b 73 65 74 20 6e 20 30 7d 20 7b .for {set n 0} {
00a0: 24 6e 20 3c 20 37 7d 20 7b 69 6e 63 72 20 6e 7d $n < 7} {incr n}
00b0: 20 7b 0a 20 20 20 20 73 65 74 20 70 61 74 74 65 {. set patte
00c0: 72 6e 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 rn [string repea
00d0: 74 20 61 2a 20 24 6e 5d 62 0a 20 20 20 20 70 75 t a* $n]b. pu
00e0: 74 73 20 22 5b 66 6f 72 6d 61 74 20 25 32 64 20 ts "[format %2d
00f0: 24 6e 5d 20 3d 20 5b 74 69 6d 65 20 7b 73 74 72 $n] = [time {str
0100: 69 6e 67 20 6d 61 74 63 68 20 24 70 61 74 74 65 ing match $patte
0110: 72 6e 20 24 63 61 6e 64 69 64 61 74 65 7d 5d 22 rn $candidate}]"
0120: 0a 7d 0a 0a 23 20 52 65 73 75 6c 74 73 0a 23 23 .}..# Results.##
0130: 0a 23 20 54 63 6c 20 38 2e 35 2e 31 34 0a 23 20 .# Tcl 8.5.14.#
0140: 54 63 6c 20 38 2e 36 2e 31 0a 23 23 0a 23 20 4e Tcl 8.6.1.##.# N
0150: 20 20 20 6d 69 63 72 6f 73 65 63 6f 6e 64 73 0a microseconds.
0160: 23 20 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d # - ----------
0170: 2d 2d 0a 23 20 30 20 3d 20 20 20 20 20 20 20 20 --.# 0 =
0180: 20 32 30 0a 23 20 31 20 3d 20 20 20 20 20 20 20 20.# 1 =
0190: 20 20 20 34 0a 23 20 32 20 3d 20 20 20 20 20 20 4.# 2 =
01a0: 20 20 20 35 31 0a 23 20 33 20 3d 20 20 20 20 20 51.# 3 =
01b0: 20 31 2c 38 31 34 0a 23 20 34 20 3d 20 20 20 20 1,814.# 4 =
01c0: 20 31 36 2c 34 31 36 0a 23 20 35 20 3d 20 20 20 16,416.# 5 =
01d0: 20 32 32 37 2c 31 35 35 20 20 28 30 2e 32 20 73 227,155 (0.2 s
01e0: 65 63 6f 6e 64 73 29 0a 23 20 36 20 3d 20 20 33 econds).# 6 = 3
01f0: 2c 39 30 38 2c 32 37 38 20 20 28 33 2e 39 20 73 ,908,278 (3.9 s
0200: 65 63 6f 6e 64 73 29 0a 23 20 37 20 3d 20 35 36 econds).# 7 = 56
0210: 2c 35 32 31 2c 36 36 36 20 28 35 36 2e 35 20 73 ,521,666 (56.5 s
0220: 65 63 6f 6e 64 73 29 0a 23 0a 23 20 54 45 52 4d econds).#.# TERM
0230: 69 6e 61 74 65 64 20 28 76 69 61 20 5e 43 29 0a inated (via ^C).