***ActiveTcl8.4.8にして気になったところとか何か [#b8b9f3ed]
-treectrlが1.0から1.1になっている。~
''カラム作成の手続きが変更されてて、変更履歴付いてないし。''~
こっそり$t column createとか追加されてるようで、ImageCatalogでtreectrl1.0の時は
$tree column configure 0 -tag thumbnail
こんな風にカラムの番号にタグを付けてた最初の初期化処理のとこを
$tree column create -tag thumbnail
みたいに修正。。。変更点どこかにまとめてないかなあ。
***ChangeLog [#l89e4ae1]
- Fixed possible deadlock in Tcl_Finalize
- Fixed thread IDs on 64-bit systems
- Fixed [scan %ld] handling LP64 systems
- Fixed [string map $samevar $samevar] crash
- Fixed broken [namespace forget] logic
- Fixed [namespace import] cycle prevention
- Improved control over int <-> wideInt conversion
- Fixed buffer overflow when there is a syntax error in [subst]
- Fixed [file executable] result for case insensitivity on Windows
- Fixed [expr {NaN == NaN}] result
- Make [tcl_findLibrary] search $::auto_path as well
- Fixed crash in [fconfigure -ttycontrol] in threaded build
- [[[TIP 222]:http://www.tcl.tk/cgi-bin/tct/tip/222.html]] implementation of [wm attributes -alpha] on Windows
-- Windows2000/XPでダイアログの透過ができるようになった!。~
package require Tk
wm attribute . -alpha 0.5
- [[[TIP 159]:http://www.tcl.tk/cgi-bin/tct/tip/159.html]] implementation of [wm iconphoto]
- Make Tk [load]-able on OS X/Aqua
- Handle color/screen resolution changes on Windows
- Fixed [wm resizable] for Solaris/CDE
- Handle Windows native dialog double clicks that fall through
- Fixed [place forget] memory leak
- Recompute menu geometry on named font size change
- Fixed X/IME IC focus after creation
- Improved multiple display Tk dialog window placement
- Fixed compound buttons for OS X/Aqua
- Documentation improvements and test suite expansion
***ベンチマーク [#p47fc897]
//なんか微妙にパフォーマンス改善してるみたいなことがChangelogに書いてたので[[tclbench:http://cvs.sourceforge.net/viewcvs.py/tcllib/tclbench/]]でベンチマークを取ってみた(Windows2000)。
000 VERSIONS: 1:8.4.7 1:8.4.8
001 BASE64 decode 10 355 369
002 BASE64 decode 100 2808 2939
003 BASE64 decode 1000 27796 29448
004 BASE64 decode 10000 276114 288047
005 BASE64 decode2 10 357 363
006 BASE64 decode2 100 2779 2908
007 BASE64 decode2 1000 27461 28727
008 BASE64 decode2 10000 278251 287473
009 BASE64 decode3 10 156 163
010 BASE64 decode3 100 1048 1122
011 BASE64 decode3 1000 10663 10486
012 BASE64 decode3 10000 101398 107098
013 BASE64 encode 10 218 232
014 BASE64 encode 100 1696 1812
015 BASE64 encode 1000 16363 17623
016 BASE64 encode 10000 170114 182659
017 BASE64 encode2 10 206 205
018 BASE64 encode2 100 1518 1568
019 BASE64 encode2 1000 14835 15854
020 BASE64 encode2 10000 149845 155865
021 BASE64 encode3 10 113 120
022 BASE64 encode3 100 510 556
023 BASE64 encode3 1000 4408 4784
024 BASE64 encode3 10000 44927 47413
025 BIN bitset-v1 1000 chars 13108 14695
026 BIN bitset-v1 5000 chars 63684 71493
027 BIN bitset-v1 10000 chars 125838 141569
028 BIN bitset-v2 1000 chars 7232 7903
029 BIN bitset-v2 5000 chars 35731 38777
030 BIN bitset-v2 10000 chars 70568 76366
031 BIN bitset-v3 1000 chars 1981 2144
032 BIN bitset-v3 5000 chars 9823 10188
033 BIN bitset-v3 10000 chars 22104 23052
034 BIN c scan, 1000b 639 630
035 BIN c scan, 5000b 1921 1934
036 BIN c scan, 10000b 3654 3879
037 CATCH error, complex 27 27
038 CATCH no catch used 8 8
039 CATCH return error 26 42
040 CATCH return except 8 8
041 CATCH return ok 8 8
042 DATA access in a list 632 630
043 DATA access in an array 1293 1297
044 DATA create in a list 573 574
045 DATA create in an array 2418 2442
046 ENC iso2022-jp, gets 4609 4158
047 ENC iso2022-jp, read 3963 4428
048 ENC iso2022-jp, read & size 4253 6531
049 ENC iso8859-2, gets 4124 4101
050 ENC iso8859-2, read 4003 3923
051 ENC iso8859-2, read & size 4260 4197
052 EVAL cmd and mixed lists 2281 2235
053 EVAL cmd eval as list 9 10
054 EVAL cmd eval as string 22 22
055 EVAL cmd eval in list obj var 9 10
056 EVAL list cmd and mixed lists 3069 3070
057 EVAL list cmd and pure lists 161 162
058 EXPR $a != $b int 6 6
059 EXPR $a != $b str (!= len) 17 17
060 EXPR $a != $b str (== len) 21 22
061 EXPR $a == $b int 6 6
062 EXPR $a == $b str (!= len) 17 17
063 EXPR $a == $b str (== len) 21 22
064 EXPR braced 12 13
065 EXPR fifty operands 18 18
066 EXPR incr with expr 4 4
067 EXPR incr with incr 4 5
068 EXPR inline 14 13
069 EXPR one operand 4 4
070 EXPR ten operands 6 6
071 EXPR unbraced 97 98
072 FCOPY binary: 164K 27731 27700
073 FCOPY encoding: 164K 40289 40855
074 FCOPY std: 164K 28180 27440
075 FILE exec interp 54399 52610
076 FILE exec interp: pkg require 711043 511420
077 FILE exists tmpfile (obj) 148 290
078 FILE exists ~ 156 156
079 FILE exists! tmpfile (obj) 152 146
080 FILE exists! tmpfile (str) 1751 1724
081 FILE glob tmpdir (60 entries) 16276 16144
082 FILE glob / all subcommands 369799 365551
083 FILE glob / atime 39201 39222
084 FILE glob / attributes 234857 234832
085 FILE glob / dirname 18863 18403
086 FILE glob / executable 36592 36758
087 FILE glob / exists 37208 36788
088 FILE glob / extension 16728 16933
089 FILE glob / isdirectory 39274 39053
090 FILE glob / isfile 39467 39011
091 FILE glob / mtime 38519 38288
092 FILE glob / owned 39241 39212
093 FILE glob / readable 37270 36798
094 FILE glob / rootname 16735 16936
095 FILE glob / size 39354 39032
096 FILE glob / tail 17218 17382
097 FILE glob / writable 37322 36960
098 FILE recurse / -dir 160924 158791
099 FILE recurse / cd 584367 578668
100 GCCont_cpb::cGCC 50 242 259
101 GCCont_cpb::cGCC 500 1011 1025
102 GCCont_cpb::cGCC 5000 9024 8799
103 GCCont_cpbre1::cGCC 50 431 435
104 GCCont_cpbre1::cGCC 500 3092 3192
105 GCCont_cpbre1::cGCC 5000 30270 29703
106 GCCont_cpbre2::cGCC 50 359 363
107 GCCont_cpbre2::cGCC 500 2760 2858
108 GCCont_cpbre2::cGCC 5000 27144 26786
109 GCCont_cpbrs2::cGCC 50 92 95
110 GCCont_cpbrs2::cGCC 500 369 369
111 GCCont_cpbrs2::cGCC 5000 3057 2941
112 GCCont_cpbrs::cGCC1 50 158 160
113 GCCont_cpbrs::cGCC1 500 450 486
114 GCCont_cpbrs::cGCC1 5000 3404 3231
115 GCCont_cpbrs::cGCC2 50 137 154
116 GCCont_cpbrs::cGCC2 500 423 424
117 GCCont_cpbrs::cGCC2 5000 3242 3179
118 GCCont_cpbrs_trap::cGCC 50 390 388
119 GCCont_cpbrs_trap::cGCC 500 2917 2923
120 GCCont_cpbrs_trap::cGCC 5000 28257 28666
121 GCCont_expr::cGCC 50 207 213
122 GCCont_expr::cGCC 500 2336 2376
123 GCCont_expr::cGCC 5000 172371 174495
124 GCCont_i::cGCC1 50 367 420
125 GCCont_i::cGCC1 500 3352 3905
126 GCCont_i::cGCC1 5000 33699 38848
127 GCCont_i::cGCC2 50 126 130
128 GCCont_i::cGCC2 500 953 954
129 GCCont_i::cGCC2 5000 9204 9549
130 GCCont_i::cGCC3 50 114 113
131 GCCont_i::cGCC3 500 777 786
132 GCCont_i::cGCC3 5000 7955 8076
133 GCCont_r1::cGCC 50 526 556
134 GCCont_r1::cGCC 500 5127 5380
135 GCCont_r1::cGCC 5000 50991 53864
136 GCCont_r2::cGCC 50 424 479
137 GCCont_r2::cGCC 500 4025 4609
138 GCCont_r2::cGCC 5000 42470 43887
139 GCCont_r3::cGCC 50 446 475
140 GCCont_r3::cGCC 500 4024 4473
141 GCCont_r3::cGCC 5000 40757 44876
142 GCCont_rsf1::cGCC 50 170 159
143 GCCont_rsf1::cGCC 500 986 966
144 GCCont_rsf1::cGCC 5000 9485 8831
145 GCCont_rsf2::cGCC1 50 112 114
146 GCCont_rsf2::cGCC1 500 557 562
147 GCCont_rsf2::cGCC1 5000 5076 4791
148 GCCont_rsf2::cGCC2 50 94 97
149 GCCont_rsf2::cGCC2 500 540 512
150 GCCont_rsf2::cGCC2 5000 5023 4773
151 GCCont_rsf3::cGCC 50 96 98
152 GCCont_rsf3::cGCC 500 515 545
153 GCCont_rsf3::cGCC 5000 4704 4519
154 GCCont_turing::cGCC 50 84 86
155 GCCont_turing::cGCC 500 393 403
156 GCCont_turing::cGCC 5000 4043 3773
157 HEAPSORT size 10 326 339
158 HEAPSORT size 50 2534 2697
159 HEAPSORT size 100 6180 6611
160 HEAPSORT2 size 10 240 239
161 HEAPSORT2 size 50 1951 1957
162 HEAPSORT2 size 100 4662 4565
163 IF 1/0 check 4 5
164 IF else true al 14 16
165 IF else true numeric 6 9
166 IF elseif true al 11 15
167 IF elseif true numeric 7 7
168 IF if false al/al 10 11
169 IF if false al/num 8 10
170 IF if false num/num 6 6
171 IF if true al 5 9
172 IF if true al/al 6 10
173 IF if true num/num 6 6
174 IF if true numeric 6 6
175 IF multi 1st true 6 6
176 IF multi 2nd true 6 9
177 IF multi 9th true 12 13
178 IF multi default true 12 12
179 KLIST shuffle0 llength 1 57 42
180 KLIST shuffle0 llength 10 103 104
181 KLIST shuffle0 llength 100 800 812
182 KLIST shuffle0 llength 1000 9685 9938
183 KLIST shuffle0 llength 10000 174935 178818
184 KLIST shuffle1-s llength 1 36 37
185 KLIST shuffle1-s llength 10 210 186
186 KLIST shuffle1-s llength 100 3078 3206
187 KLIST shuffle1-s llength 1000 183697 187798
188 KLIST shuffle1a llength 1 43 57
189 KLIST shuffle1a llength 10 197 207
190 KLIST shuffle1a llength 100 1917 1997
191 KLIST shuffle1a llength 1000 18840 19624
192 KLIST shuffle1a llength 10000 198021 199981
193 KLIST shuffle2 llength 1 41 42
194 KLIST shuffle2 llength 10 194 200
195 KLIST shuffle2 llength 100 1874 1954
196 KLIST shuffle2 llength 1000 20159 21464
197 KLIST shuffle2 llength 10000 262570 279086
198 KLIST shuffle3 llength 1 36 37
199 KLIST shuffle3 llength 10 157 162
200 KLIST shuffle3 llength 100 1515 1466
201 KLIST shuffle3 llength 1000 18647 15432
202 KLIST shuffle3 llength 10000 578476 256537
203 KLIST shuffle4 llength 1 38 38
204 KLIST shuffle4 llength 10 163 166
205 KLIST shuffle4 llength 100 1555 1534
206 KLIST shuffle4 llength 1000 15016 14974
207 KLIST shuffle4 llength 10000 159239 158712
208 KLIST shuffle5-s llength 1 17 18
209 KLIST shuffle5-s llength 10 122 129
210 KLIST shuffle5-s llength 100 1604 1549
211 KLIST shuffle5-s llength 1000 58885 56968
212 KLIST shuffle5a llength 1 20 23
213 KLIST shuffle5a llength 10 125 133
214 KLIST shuffle5a llength 100 1169 1274
215 KLIST shuffle5a llength 1000 15448 13115
216 KLIST shuffle5a llength 10000 568422 235733
217 KLIST shuffle6 llength 1 6 6
218 KLIST shuffle6 llength 10 55 59
219 KLIST shuffle6 llength 100 488 475
220 KLIST shuffle6 llength 1000 4862 4897
221 KLIST shuffle6 llength 10000 55868 52581
222 LIST append to list 7 8
223 LIST concat APPEND 2x10 43 45
224 LIST concat APPEND 2x100 300 301
225 LIST concat APPEND 2x1000 3468 3395
226 LIST concat APPEND 2x10000 46447 47092
227 LIST concat CONCAT 2x10 15 15
228 LIST concat CONCAT 2x100 26 27
229 LIST concat CONCAT 2x1000 142 146
230 LIST concat CONCAT 2x10000 1340 1411
231 LIST concat EVAL/LAPPEND 2x10 23 24
232 LIST concat EVAL/LAPPEND 2x100 44 43
233 LIST concat EVAL/LAPPEND 2x1000 236 219
234 LIST concat EVAL/LAPPEND 2x10000 3060 3075
235 LIST concat FOREACH/LAPPEND 2x10 24 24
236 LIST concat FOREACH/LAPPEND 2x100 115 110
237 LIST concat FOREACH/LAPPEND 2x1000 956 960
238 LIST concat FOREACH/LAPPEND 2x10000 10520 10523
239 LIST concat SET 2x10 34 34
240 LIST concat SET 2x100 227 231
241 LIST concat SET 2x1000 3089 3075
242 LIST concat SET 2x10000 42629 42870
243 LIST exact search, first item 8 8
244 LIST exact search, last item 26 42
245 LIST exact search, middle item 14 14
246 LIST exact search, non-item 67 72
247 LIST exact search, typed item 21 23
248 LIST exact search, untyped item 26 28
249 LIST index first element 7 6
250 LIST index last element 7 6
251 LIST index middle element 7 6
252 LIST insert an item at "end" 86 88
253 LIST insert an item at middle 99 88
254 LIST insert an item at start 102 88
255 LIST iterate list 1408 1389
256 LIST join list 439 432
257 LIST large, early range 19 20
258 LIST large, late range 20 20
259 LIST length, pure list 6 6
260 LIST list 18 18
261 LIST lset foreach l 1703 1742
262 LIST lset foreach list 1677 1752
263 LIST lset foreach ""s l 429 423
264 LIST lset foreach ""s list 426 415
265 LIST regexp search, first item 20 20
266 LIST regexp search, last item 1281 1275
267 LIST regexp search, non-item 2635 2683
268 LIST remove first element 104 90
269 LIST remove in mixed list 108 93
270 LIST remove last element 102 89
271 LIST remove middle element 102 89
272 LIST replace first el with multiple 105 91
273 LIST replace first element 86 86
274 LIST replace in mixed list 107 90
275 LIST replace last el with multiple 88 88
276 LIST replace last element 89 87
277 LIST replace middle el with multiple 101 90
278 LIST replace middle element 89 101
279 LIST replace range 89 88
280 LIST small, early range 10 11
281 LIST small, late range 10 11
282 LIST sort 1051 1053
283 LIST sorted search, first item 9 9
284 LIST sorted search, last item 9 9
285 LIST sorted search, middle item 9 9
286 LIST sorted search, non-item 9 9
287 LIST sorted search, typed item 9 9
288 LIST typed sort 932 936
289 LOOP for (to 1000) 757 774
290 LOOP for, iterate list 1223 1192
291 LOOP for, iterate string 1939 1858
292 LOOP foreach, iterate list 732 683
293 LOOP foreach, iterate string 894 910
294 LOOP while (to 1000) 772 759
295 LOOP while 1 (to 1000) 711 707
296 MAP ([chars])-case regsub 213 209
297 MAP http mapReply 142138 142802
298 MAP regsub -nocase, no match 1014 970
299 MAP regsub 1 val 635 610
300 MAP regsub 1 val -nocase 895 928
301 MAP regsub 2 val 1668 1700
302 MAP regsub 2 val -nocase 2237 2272
303 MAP regsub 3 val 2461 2517
304 MAP regsub 3 val -nocase 3297 3380
305 MAP regsub 4 val 3201 3315
306 MAP regsub 4 val -nocase 4282 4409
307 MAP regsub short 25 25
308 MAP regsub, no match 304 297
309 MAP string -nocase, no match 1926 1886
310 MAP string 1 val 584 678
311 MAP string 1 val -nocase 915 945
312 MAP string 2 val 1169 1201
313 MAP string 2 val -nocase 2061 1977
314 MAP string 3 val 1438 1443
315 MAP string 3 val -nocase 2571 2568
316 MAP string 4 val 1701 1695
317 MAP string 4 val -nocase 3073 3090
318 MAP string short 19 21
319 MAP string, no match 808 847
320 MAP |-case regsub 106 107
321 MAP |-case strmap 19 21
322 MATRIX mult 5x5 357 396
323 MATRIX mult 10x10 2333 2333
324 MATRIX mult 15x15 7438 7406
325 MATRIX transposition-0 3505 3569
326 MATRIX transposition-1 2157 2126
327 MD5 msg len 10 1470 1441
328 MD5 msg len 100 2383 2539
329 MD5 msg len 1000 17489 19702
330 MD5 msg len 10000 179832 191065
331 MD5-2 msg len 10 508 520
332 MD5-2 msg len 100 789 859
333 MD5-2 msg len 1000 4819 4919
334 MD5-2 msg len 10000 45373 45324
335 MTHD array stored proc call 6 6
336 MTHD call absolute 10 11
337 MTHD call relative 15 15
338 MTHD direct ns proc call 4 4
339 MTHD imported ns proc call 4 4
340 MTHD indirect proc eval 13 15
341 MTHD indirect proc eval #2 26 23
342 MTHD inline call 2 2
343 MTHD interp alias proc call 5 5
344 MTHD ns lookup call 40 42
345 MTHD switch method call 19 22
346 PARSE html form upload (7817) 11610 11833
347 PARSE html form upload (973817) 1289840 1317210
348 PROC do-nothing, no args 3 3
349 PROC do-nothing, one arg 3 3
350 PROC empty, no args 1 1
351 PROC empty, use args 1 1
352 PROC explicit return 3 4
353 PROC explicit return (2) 3 3
354 PROC explicit return (3) 3 4
355 PROC heavily commented 3 3
356 PROC implicit return 4 4
357 PROC implicit return (2) 4 4
358 PROC implicit return (3) 3 3
359 PROC local links with global 483 492
360 PROC local links with upvar 441 452
361 PROC local links with variable 408 419
362 RE 1-char long-end 73 86
363 RE 1-char long-end catching 108 108
364 RE 1-char long-middle 45 46
365 RE 1-char long-middle catching 80 81
366 RE 1-char long-start 17 18
367 RE 1-char long-start catching 52 53
368 RE 1-char short 18 18
369 RE 1-char short catching 53 53
370 RE basic 17 16
371 RE basic catching 57 58
372 RE c-comment long 86 87
373 RE c-comment long catching 245 248
374 RE c-comment long nomatch 131 132
375 RE c-comment long nomatch catching 136 135
376 RE c-comment long pmatch 159 146
377 RE c-comment long pmatch catching 148 161
378 RE c-comment many *s 149 164
379 RE c-comment many *s catching 434 422
380 RE c-comment nomatch 23 23
381 RE c-comment nomatch catching 25 26
382 RE c-comment simple 42 42
383 RE c-comment simple catching 153 154
384 RE count all matches 130 128
385 RE extract all matches 142 142
386 RE literal regexp 27 28
387 RE n-char long-end 74 74
388 RE n-char long-end catching 120 121
389 RE n-char long-middle 46 47
390 RE n-char long-middle catching 92 93
391 RE n-char long-start 19 19
392 RE n-char long-start catching 79 66
393 RE n-char short 19 19
394 RE n-char short catching 62 63
395 RE static anchored match 4 18
396 RE static anchored nomatch 4 4
397 RE static l-anchored match 4 4
398 RE static l-anchored nomatch 4 4
399 RE static long match 14 15
400 RE static long nomatch 20 21
401 RE static r-anchored match 4 5
402 RE static r-anchored nomatch 4 5
403 RE static short match 4 5
404 RE static short nomatch 4 4
405 RE var-based regexp 29 29
406 READ 605K, gets 163940 169408
407 READ 605K, read 65849 64934
408 READ 605K, read & size 64567 64484
409 READ 3100b, gets 1901 1948
410 READ 3100b, read 1337 1354
411 READ 3100b, read & size 1596 1603
412 READ bin 605K, gets 157866 164981
413 READ bin 605K, read 20194 19921
414 READ bin 605K, read & size 20188 19183
415 READ bin 3100b, gets 1928 1999
416 READ bin 3100b, read 1176 1179
417 READ bin 3100b, read & size 1412 1421
418 SHA sha1 msg len 10 3095 3261
419 SHA sha1 msg len 100 5729 6218
420 SHA sha1 msg len 1000 43215 46441
421 SHA sha1 msg len 10000 431134 467334
422 SHA sha1DF msg len 10 1295 1167
423 SHA sha1DF msg len 100 2184 2208
424 SHA sha1DF msg len 1000 17745 17771
425 SHA sha1DF msg len 10000 166121 166114
426 SPLIT iter, 4000 uchars 4012 3884
427 SPLIT iter, 4010 chars 3902 3867
428 SPLIT iter, rand 100 c 251 244
429 SPLIT iter, rand 1000 c 1446 1464
430 SPLIT iter, rand 10000 c 10729 10771
431 SPLIT on 'c', 4000 uchars 204 206
432 SPLIT on 'c', 4010 chars 206 238
433 SPLIT on 'c?', 4000 uchars 786 788
434 SPLIT on 'c?', 4010 chars 625 598
435 SPLIT on 'cz', 4000 uchars 681 680
436 SPLIT on 'cz', 4010 chars 683 648
437 SPLIT, 4000 uchars 1220 1136
438 SPLIT, 4010 chars 1014 1008
439 SPLIT, rand 100 c 178 204
440 SPLIT, rand 1000 c 737 745
441 SPLIT, rand 10000 c 3314 3302
442 STR append 30 46
443 STR append (1KB + 1KB) 21 22
444 STR append (1MB + (1b + 1K + 1b) * 100) 22654 22652
445 STR append (1MB + 1KB * 20) 21686 21607
446 STR append (1MB + 1KB * 1000) 29730 29851
447 STR append (1MB + 1KB) 21789 21728
448 STR append (1MB + 1MB * 3) 53600 53811
449 STR append (1MB + 1MB * 5) 105474 105510
450 STR append (1MB + 2b * 1000) 22574 22628
451 STR append (10KB + 1KB) 28 29
452 STR first (failure) 85 72
453 STR first (failure) utf 69 70
454 STR first (success) 8 9
455 STR first (success) utf 8 9
456 STR first (total failure) 63 63
457 STR first (total failure) utf 65 63
458 STR index 0 9 9
459 STR index 100 9 9
460 STR index 500 11 9
461 STR info locals match 344 350
462 STR last (failure) 67 67
463 STR last (success) 8 8
464 STR last (total failure) 61 71
465 STR length (==4010) 6 6
466 STR length growing (1000) 1085 1140
467 STR length growing uc (1000) 1101 1110
468 STR length of a LIST 5 6
469 STR length static str 4 4
470 STR match, complex (failure) 65 65
471 STR match, complex (success early) 7 8
472 STR match, complex (success late) 83 81
473 STR match, complex (total failure) 51 51
474 STR match, exact (failure) 4 4
475 STR match, exact (success) 4 4
476 STR match, exact -nocase (failure) 4 4
477 STR match, exact -nocase (success) 5 6
478 STR match, simple (failure) 4 4
479 STR match, simple (success) 4 4
480 STR range, index 100..200 of 4010 11 11
481 STR repeat, 4010 chars * 10 125 125
482 STR repeat, 4010 chars * 100 1556 1538
483 STR repeat, abcdefghij * 10 7 7
484 STR repeat, abcdefghij * 100 12 12
485 STR repeat, abcdefghij * 1000 65 65
486 STR replace, equal replacement 29 30
487 STR replace, longer replacement 29 28
488 STR replace, no replacement 26 26
489 STR reverse iter/append, 10 c 37 43
490 STR reverse iter/append, 10 uc 37 42
491 STR reverse iter/append, 100 c 238 282
492 STR reverse iter/append, 100 uc 252 277
493 STR reverse iter/append, 400 c 897 1043
494 STR reverse iter/append, 400 uc 925 1075
495 STR reverse iter/set, 10 c 42 40
496 STR reverse iter/set, 10 uc 40 41
497 STR reverse iter/set, 100 c 310 315
498 STR reverse iter/set, 100 uc 333 326
499 STR reverse iter/set, 400 c 1308 1349
500 STR reverse iter/set, 400 uc 1344 1360
501 STR reverse recursive, 10 c 106 104
502 STR reverse recursive, 10 uc 98 102
503 STR reverse recursive, 100 c 1057 1059
504 STR reverse recursive, 100 uc 1005 990
505 STR reverse recursive, 400 c ERR ERR
506 STR reverse recursive, 400 uc ERR ERR
507 STR str $a eq $b 9 10
508 STR str $a eq $b (same obj) 9 10
509 STR str $a equal "" 6 9
510 STR str $a ne $b 10 10
511 STR str $a ne $b (same obj) 9 9
512 STR str num == "" 6 7
513 STR string compare 10 10
514 STR string compare "" 8 9
515 STR string compare long 100 101
516 STR string compare long (same obj) 9 9
517 STR string compare mixed long 260 261
518 STR string compare uni long 301 319
519 STR string equal "" 7 8
520 STR string equal long (!= len) 17 17
521 STR string equal long (== len) 196 178
522 STR string equal long (same obj) 10 11
523 STR string equal mixed long 10 10
524 STR string equal uni long 205 202
525 STR/LIST length, obj shimmer 1632 1618
526 SWITCH 1st true 17 18
527 SWITCH 2nd true 17 18
528 SWITCH 9th true 19 19
529 SWITCH default true 19 22
530 TRACE all set (rwu) 17 16
531 TRACE no trace set 17 17
532 TRACE read 17 16
533 TRACE unset 17 18
534 TRACE write 16 17
535 UNSET catch var !exist 30 31
536 UNSET catch var exists 6 6
537 UNSET info check var !exist 6 6
538 UNSET info check var exists 8 8
539 UNSET nocomplain var !exist 6 6
540 UNSET nocomplain var exists 6 6
541 UNSET var exists 5 5
542 VAR 'array set' of 100 elems 95 99
543 VAR 100 'set's in array 70 71
544 VAR access global 9 12
545 VAR access local proc arg 5 5
546 VAR access locally set 5 5
547 VAR access upvar 13 12
548 VAR mset 12 10
549 VAR mset (foreach) 7 8
550 VAR ref absolute 240 218
551 VAR ref local 35 33
552 VAR ref variable 38 41
553 VAR set array element 9 8
554 VAR set scalar 4 4
555 WORDCOUNT wc1 3091 3138
556 WORDCOUNT wc2 648 656
557 WORDCOUNT wc3 587 601
557 BENCHMARKS 1:8.4.7 1:8.4.8
000 VERSIONS: 1:8.4.7 1:8.4.8
001 CANVAS cget/incr -width 14 14
002 CANVAS configure -bg 10 10
003 CANVAS configure all 114 111
004 CANVAS create 317 295
005 CANVAS create (one exists) 254 240
006 CANVAS draw-3 100 16790 16902
007 CANVAS simple draw 10 1960 2032
008 CANVAS simple draw 100 16961 17232
009 CANVAS simple draw 1000 216915 225646
010 ENTRY create 619 622
011 ENTRY create (one exists) 281 267
012 STARTUP time to launch wish 1739630 1319774
012 BENCHMARKS 1:8.4.7 1:8.4.8
//なんか微妙にパフォーマンス改善してるみたいなことがChangelogに書いてたのでベンチマークを取ってみた(Windows2000)。
微妙にwishの起動が速くなっていたので、[[tclbench:http://cvs.sourceforge.net/viewcvs.py/tcllib/tclbench/]]でベンチマークを取ってみた(w2k)。1と2はそれぞれのバージョンのActiveTclのバイナリで、3はVC7.1でPentium3用に最大限に最適化したやつ。
000 VERSIONS: 1:8.4.7 2:8.4.8 3:8.4.8
001 BASE64 decode 10 355 369 246
002 BASE64 decode 100 2808 2939 1934
003 BASE64 decode 1000 27796 29448 19069
004 BASE64 decode 10000 276114 288047 191479
005 BASE64 decode2 10 357 363 243
006 BASE64 decode2 100 2779 2908 1900
007 BASE64 decode2 1000 27461 28727 18331
008 BASE64 decode2 10000 278251 287473 185838
009 BASE64 decode3 10 156 163 107
010 BASE64 decode3 100 1048 1122 719
011 BASE64 decode3 1000 10663 10486 6661
012 BASE64 decode3 10000 101398 107098 69788
013 BASE64 encode 10 218 232 143
014 BASE64 encode 100 1696 1812 1068
015 BASE64 encode 1000 16363 17623 10377
016 BASE64 encode 10000 170114 182659 104571
017 BASE64 encode2 10 206 205 133
018 BASE64 encode2 100 1518 1568 934
019 BASE64 encode2 1000 14835 15854 9081
020 BASE64 encode2 10000 149845 155865 93650
021 BASE64 encode3 10 113 120 76
022 BASE64 encode3 100 510 556 308
023 BASE64 encode3 1000 4408 4784 2561
024 BASE64 encode3 10000 44927 47413 26187
025 BIN bitset-v1 1000 chars 13108 14695 9364
026 BIN bitset-v1 5000 chars 63684 71493 46507
027 BIN bitset-v1 10000 chars 125838 141569 93078
028 BIN bitset-v2 1000 chars 7232 7903 5333
029 BIN bitset-v2 5000 chars 35731 38777 25796
030 BIN bitset-v2 10000 chars 70568 76366 52079
031 BIN bitset-v3 1000 chars 1981 2144 1239
032 BIN bitset-v3 5000 chars 9823 10188 6392
033 BIN bitset-v3 10000 chars 22104 23052 14188
034 BIN c scan, 1000b 639 630 420
035 BIN c scan, 5000b 1921 1934 1295
036 BIN c scan, 10000b 3654 3879 2348
037 CATCH error, complex 27 27 19
038 CATCH no catch used 8 8 5
039 CATCH return error 26 42 19
040 CATCH return except 8 8 5
041 CATCH return ok 8 8 5
042 DATA access in a list 632 630 352
043 DATA access in an array 1293 1297 850
044 DATA create in a list 573 574 316
045 DATA create in an array 2418 2442 1644
046 ENC iso2022-jp, gets 4609 4158 4092
047 ENC iso2022-jp, read 3963 4428 4019
048 ENC iso2022-jp, read & size 4253 6531 4270
049 ENC iso8859-2, gets 4124 4101 4073
050 ENC iso8859-2, read 4003 3923 3977
051 ENC iso8859-2, read & size 4260 4197 4236
052 EVAL cmd and mixed lists 2281 2235 1716
053 EVAL cmd eval as list 9 10 6
054 EVAL cmd eval as string 22 22 16
055 EVAL cmd eval in list obj var 9 10 6
056 EVAL list cmd and mixed lists 3069 3070 1714
057 EVAL list cmd and pure lists 161 162 77
058 EXPR $a != $b int 6 6 3
059 EXPR $a != $b str (!= len) 17 17 13
060 EXPR $a != $b str (== len) 21 22 15
061 EXPR $a == $b int 6 6 4
062 EXPR $a == $b str (!= len) 17 17 13
063 EXPR $a == $b str (== len) 21 22 15
064 EXPR braced 12 13 8
065 EXPR fifty operands 18 18 11
066 EXPR incr with expr 4 4 3
067 EXPR incr with incr 4 5 2
068 EXPR inline 14 13 9
069 EXPR one operand 4 4 2
070 EXPR ten operands 6 6 4
071 EXPR unbraced 97 98 72
072 FCOPY binary: 164K 27731 27700 16798
073 FCOPY encoding: 164K 40289 40855 29762
074 FCOPY std: 164K 28180 27440 18947
075 FILE exec interp 54399 52610 49537
076 FILE exec interp: pkg require 711043 511420 491932
077 FILE exists tmpfile (obj) 148 290 144
078 FILE exists ~ 156 156 151
079 FILE exists! tmpfile (obj) 152 146 144
080 FILE exists! tmpfile (str) 1751 1724 1732
081 FILE glob tmpdir (60 entries) 16276 16144 16088
082 FILE glob / all subcommands 369799 365551 361689
083 FILE glob / atime 39201 39222 38425
084 FILE glob / attributes 234857 234832 233285
085 FILE glob / dirname 18863 18403 17873
086 FILE glob / executable 36592 36758 36044
087 FILE glob / exists 37208 36788 36443
088 FILE glob / extension 16728 16933 16561
089 FILE glob / isdirectory 39274 39053 38287
090 FILE glob / isfile 39467 39011 38313
091 FILE glob / mtime 38519 38288 37506
092 FILE glob / owned 39241 39212 38361
093 FILE glob / readable 37270 36798 36502
094 FILE glob / rootname 16735 16936 16487
095 FILE glob / size 39354 39032 38332
096 FILE glob / tail 17218 17382 16901
097 FILE glob / writable 37322 36960 36439
098 FILE recurse / -dir 160924 158791 157565
099 FILE recurse / cd 584367 578668 586293
100 GCCont_cpb::cGCC 50 242 259 162
101 GCCont_cpb::cGCC 500 1011 1025 582
102 GCCont_cpb::cGCC 5000 9024 8799 4873
103 GCCont_cpbre1::cGCC 50 431 435 214
104 GCCont_cpbre1::cGCC 500 3092 3192 1441
105 GCCont_cpbre1::cGCC 5000 30270 29703 13684
106 GCCont_cpbre2::cGCC 50 359 363 174
107 GCCont_cpbre2::cGCC 500 2760 2858 1304
108 GCCont_cpbre2::cGCC 5000 27144 26786 12488
109 GCCont_cpbrs2::cGCC 50 92 95 62
110 GCCont_cpbrs2::cGCC 500 369 369 220
111 GCCont_cpbrs2::cGCC 5000 3057 2941 1731
112 GCCont_cpbrs::cGCC1 50 158 160 96
113 GCCont_cpbrs::cGCC1 500 450 486 264
114 GCCont_cpbrs::cGCC1 5000 3404 3231 2026
115 GCCont_cpbrs::cGCC2 50 137 154 85
116 GCCont_cpbrs::cGCC2 500 423 424 244
117 GCCont_cpbrs::cGCC2 5000 3242 3179 1757
118 GCCont_cpbrs_trap::cGCC 50 390 388 199
119 GCCont_cpbrs_trap::cGCC 500 2917 2923 1387
120 GCCont_cpbrs_trap::cGCC 5000 28257 28666 13053
121 GCCont_expr::cGCC 50 207 213 162
122 GCCont_expr::cGCC 500 2336 2376 1957
123 GCCont_expr::cGCC 5000 172371 174495 163695
124 GCCont_i::cGCC1 50 367 420 243
125 GCCont_i::cGCC1 500 3352 3905 2251
126 GCCont_i::cGCC1 5000 33699 38848 22290
127 GCCont_i::cGCC2 50 126 130 77
128 GCCont_i::cGCC2 500 953 954 552
129 GCCont_i::cGCC2 5000 9204 9549 5088
130 GCCont_i::cGCC3 50 114 113 70
131 GCCont_i::cGCC3 500 777 786 448
132 GCCont_i::cGCC3 5000 7955 8076 4518
133 GCCont_r1::cGCC 50 526 556 341
134 GCCont_r1::cGCC 500 5127 5380 3391
135 GCCont_r1::cGCC 5000 50991 53864 34288
136 GCCont_r2::cGCC 50 424 479 295
137 GCCont_r2::cGCC 500 4025 4609 2668
138 GCCont_r2::cGCC 5000 42470 43887 26580
139 GCCont_r3::cGCC 50 446 475 281
140 GCCont_r3::cGCC 500 4024 4473 2676
141 GCCont_r3::cGCC 5000 40757 44876 26792
142 GCCont_rsf1::cGCC 50 170 159 100
143 GCCont_rsf1::cGCC 500 986 966 557
144 GCCont_rsf1::cGCC 5000 9485 8831 5380
145 GCCont_rsf2::cGCC1 50 112 114 72
146 GCCont_rsf2::cGCC1 500 557 562 339
147 GCCont_rsf2::cGCC1 5000 5076 4791 2716
148 GCCont_rsf2::cGCC2 50 94 97 61
149 GCCont_rsf2::cGCC2 500 540 512 296
150 GCCont_rsf2::cGCC2 5000 5023 4773 2587
151 GCCont_rsf3::cGCC 50 96 98 63
152 GCCont_rsf3::cGCC 500 515 545 297
153 GCCont_rsf3::cGCC 5000 4704 4519 2577
154 GCCont_turing::cGCC 50 84 86 55
155 GCCont_turing::cGCC 500 393 403 235
156 GCCont_turing::cGCC 5000 4043 3773 2477
157 HEAPSORT size 10 326 339 179
158 HEAPSORT size 50 2534 2697 1547
159 HEAPSORT size 100 6180 6611 3758
160 HEAPSORT2 size 10 240 239 136
161 HEAPSORT2 size 50 1951 1957 1107
162 HEAPSORT2 size 100 4662 4565 2594
163 IF 1/0 check 4 5 3
164 IF else true al 14 16 13
165 IF else true numeric 6 9 12
166 IF elseif true al 11 15 11
167 IF elseif true numeric 7 7 4
168 IF if false al/al 10 11 8
169 IF if false al/num 8 10 6
170 IF if false num/num 6 6 3
171 IF if true al 5 9 6
172 IF if true al/al 6 10 6
173 IF if true num/num 6 6 3
174 IF if true numeric 6 6 3
175 IF multi 1st true 6 6 4
176 IF multi 2nd true 6 9 4
177 IF multi 9th true 12 13 7
178 IF multi default true 12 12 7
179 KLIST shuffle0 llength 1 57 42 30
180 KLIST shuffle0 llength 10 103 104 70
181 KLIST shuffle0 llength 100 800 812 549
182 KLIST shuffle0 llength 1000 9685 9938 6449
183 KLIST shuffle0 llength 10000 174935 178818 139863
184 KLIST shuffle1-s llength 1 36 37 25
185 KLIST shuffle1-s llength 10 210 186 107
186 KLIST shuffle1-s llength 100 3078 3206 1461
187 KLIST shuffle1-s llength 1000 183697 187798 90141
188 KLIST shuffle1a llength 1 43 57 28
189 KLIST shuffle1a llength 10 197 207 115
190 KLIST shuffle1a llength 100 1917 1997 1089
191 KLIST shuffle1a llength 1000 18840 19624 11065
192 KLIST shuffle1a llength 10000 198021 199981 114292
193 KLIST shuffle2 llength 1 41 42 26
194 KLIST shuffle2 llength 10 194 200 121
195 KLIST shuffle2 llength 100 1874 1954 1174
196 KLIST shuffle2 llength 1000 20159 21464 12786
197 KLIST shuffle2 llength 10000 262570 279086 190501
198 KLIST shuffle3 llength 1 36 37 28
199 KLIST shuffle3 llength 10 157 162 91
200 KLIST shuffle3 llength 100 1515 1466 848
201 KLIST shuffle3 llength 1000 18647 15432 9206
202 KLIST shuffle3 llength 10000 578476 256537 192414
203 KLIST shuffle4 llength 1 38 38 26
204 KLIST shuffle4 llength 10 163 166 93
205 KLIST shuffle4 llength 100 1555 1534 844
206 KLIST shuffle4 llength 1000 15016 14974 8440
207 KLIST shuffle4 llength 10000 159239 158712 90817
208 KLIST shuffle5-s llength 1 17 18 10
209 KLIST shuffle5-s llength 10 122 129 71
210 KLIST shuffle5-s llength 100 1604 1549 793
211 KLIST shuffle5-s llength 1000 58885 56968 28394
212 KLIST shuffle5a llength 1 20 23 12
213 KLIST shuffle5a llength 10 125 133 72
214 KLIST shuffle5a llength 100 1169 1274 690
215 KLIST shuffle5a llength 1000 15448 13115 7718
216 KLIST shuffle5a llength 10000 568422 235733 177024
217 KLIST shuffle6 llength 1 6 6 3
218 KLIST shuffle6 llength 10 55 59 31
219 KLIST shuffle6 llength 100 488 475 267
220 KLIST shuffle6 llength 1000 4862 4897 2759
221 KLIST shuffle6 llength 10000 55868 52581 32369
222 LIST append to list 7 8 5
223 LIST concat APPEND 2x10 43 45 39
224 LIST concat APPEND 2x100 300 301 314
225 LIST concat APPEND 2x1000 3468 3395 3278
226 LIST concat APPEND 2x10000 46447 47092 44340
227 LIST concat CONCAT 2x10 15 15 9
228 LIST concat CONCAT 2x100 26 27 12
229 LIST concat CONCAT 2x1000 142 146 50
230 LIST concat CONCAT 2x10000 1340 1411 426
231 LIST concat EVAL/LAPPEND 2x10 23 24 15
232 LIST concat EVAL/LAPPEND 2x100 44 43 24
233 LIST concat EVAL/LAPPEND 2x1000 236 219 84
234 LIST concat EVAL/LAPPEND 2x10000 3060 3075 1739
235 LIST concat FOREACH/LAPPEND 2x10 24 24 14
236 LIST concat FOREACH/LAPPEND 2x100 115 110 64
237 LIST concat FOREACH/LAPPEND 2x1000 956 960 545
238 LIST concat FOREACH/LAPPEND 2x10000 10520 10523 6082
239 LIST concat SET 2x10 34 34 32
240 LIST concat SET 2x100 227 231 249
241 LIST concat SET 2x1000 3089 3075 3069
242 LIST concat SET 2x10000 42629 42870 42223
243 LIST exact search, first item 8 8 5
244 LIST exact search, last item 26 42 20
245 LIST exact search, middle item 14 14 9
246 LIST exact search, non-item 67 72 58
247 LIST exact search, typed item 21 23 16
248 LIST exact search, untyped item 26 28 21
249 LIST index first element 7 6 4
250 LIST index last element 7 6 4
251 LIST index middle element 7 6 4
252 LIST insert an item at "end" 86 88 39
253 LIST insert an item at middle 99 88 42
254 LIST insert an item at start 102 88 42
255 LIST iterate list 1408 1389 797
256 LIST join list 439 432 309
257 LIST large, early range 19 20 9
258 LIST large, late range 20 20 9
259 LIST length, pure list 6 6 4
260 LIST list 18 18 10
261 LIST lset foreach l 1703 1742 992
262 LIST lset foreach list 1677 1752 990
263 LIST lset foreach ""s l 429 423 219
264 LIST lset foreach ""s list 426 415 219
265 LIST regexp search, first item 20 20 11
266 LIST regexp search, last item 1281 1275 569
267 LIST regexp search, non-item 2635 2683 1199
268 LIST remove first element 104 90 42
269 LIST remove in mixed list 108 93 48
270 LIST remove last element 102 89 42
271 LIST remove middle element 102 89 44
272 LIST replace first el with multiple 105 91 43
273 LIST replace first element 86 86 39
274 LIST replace in mixed list 107 90 45
275 LIST replace last el with multiple 88 88 40
276 LIST replace last element 89 87 39
277 LIST replace middle el with multiple 101 90 44
278 LIST replace middle element 89 101 42
279 LIST replace range 89 88 40
280 LIST small, early range 10 11 6
281 LIST small, late range 10 11 6
282 LIST sort 1051 1053 625
283 LIST sorted search, first item 9 9 5
284 LIST sorted search, last item 9 9 5
285 LIST sorted search, middle item 9 9 5
286 LIST sorted search, non-item 9 9 5
287 LIST sorted search, typed item 9 9 6
288 LIST typed sort 932 936 737
289 LOOP for (to 1000) 757 774 448
290 LOOP for, iterate list 1223 1192 701
291 LOOP for, iterate string 1939 1858 1434
292 LOOP foreach, iterate list 732 683 398
293 LOOP foreach, iterate string 894 910 522
294 LOOP while (to 1000) 772 759 442
295 LOOP while 1 (to 1000) 711 707 413
296 MAP ([chars])-case regsub 213 209 103
297 MAP http mapReply 142138 142802 74568
298 MAP regsub -nocase, no match 1014 970 529
299 MAP regsub 1 val 635 610 359
300 MAP regsub 1 val -nocase 895 928 528
301 MAP regsub 2 val 1668 1700 1019
302 MAP regsub 2 val -nocase 2237 2272 1523
303 MAP regsub 3 val 2461 2517 1550
304 MAP regsub 3 val -nocase 3297 3380 1975
305 MAP regsub 4 val 3201 3315 1982
306 MAP regsub 4 val -nocase 4282 4409 2618
307 MAP regsub short 25 25 17
308 MAP regsub, no match 304 297 177
309 MAP string -nocase, no match 1926 1886 900
310 MAP string 1 val 584 678 396
311 MAP string 1 val -nocase 915 945 618
312 MAP string 2 val 1169 1201 701
313 MAP string 2 val -nocase 2061 1977 1021
314 MAP string 3 val 1438 1443 846
315 MAP string 3 val -nocase 2571 2568 1286
316 MAP string 4 val 1701 1695 1021
317 MAP string 4 val -nocase 3073 3090 1595
318 MAP string short 19 21 14
319 MAP string, no match 808 847 454
320 MAP |-case regsub 106 107 52
321 MAP |-case strmap 19 21 14
322 MATRIX mult 5x5 357 396 211
323 MATRIX mult 10x10 2333 2333 1338
324 MATRIX mult 15x15 7438 7406 4226
325 MATRIX transposition-0 3505 3569 2323
326 MATRIX transposition-1 2157 2126 1335
327 MD5 msg len 10 1470 1441 818
328 MD5 msg len 100 2383 2539 1430
329 MD5 msg len 1000 17489 19702 10158
330 MD5 msg len 10000 179832 191065 105837
331 MD5-2 msg len 10 508 520 340
332 MD5-2 msg len 100 789 859 510
333 MD5-2 msg len 1000 4819 4919 2867
334 MD5-2 msg len 10000 45373 45324 27020
335 MTHD array stored proc call 6 6 3
336 MTHD call absolute 10 11 7
337 MTHD call relative 15 15 9
338 MTHD direct ns proc call 4 4 2
339 MTHD imported ns proc call 4 4 2
340 MTHD indirect proc eval 13 15 9
341 MTHD indirect proc eval #2 26 23 16
342 MTHD inline call 2 2 1
343 MTHD interp alias proc call 5 5 3
344 MTHD ns lookup call 40 42 29
345 MTHD switch method call 19 22 13
346 PARSE html form upload (7817) 11610 11833 8727
347 PARSE html form upload (973817) 1289840 1317210 839065
348 PROC do-nothing, no args 3 3 2
349 PROC do-nothing, one arg 3 3 2
350 PROC empty, no args 1 1 1
351 PROC empty, use args 1 1 1
352 PROC explicit return 3 4 2
353 PROC explicit return (2) 3 3 2
354 PROC explicit return (3) 3 4 2
355 PROC heavily commented 3 3 2
356 PROC implicit return 4 4 2
357 PROC implicit return (2) 4 4 2
358 PROC implicit return (3) 3 3 2
359 PROC local links with global 483 492 281
360 PROC local links with upvar 441 452 249
361 PROC local links with variable 408 419 245
362 RE 1-char long-end 73 86 33
363 RE 1-char long-end catching 108 108 54
364 RE 1-char long-middle 45 46 21
365 RE 1-char long-middle catching 80 81 42
366 RE 1-char long-start 17 18 10
367 RE 1-char long-start catching 52 53 31
368 RE 1-char short 18 18 19
369 RE 1-char short catching 53 53 30
370 RE basic 17 16 9
371 RE basic catching 57 58 33
372 RE c-comment long 86 87 41
373 RE c-comment long catching 245 248 124
374 RE c-comment long nomatch 131 132 60
375 RE c-comment long nomatch catching 136 135 61
376 RE c-comment long pmatch 159 146 65
377 RE c-comment long pmatch catching 148 161 74
378 RE c-comment many *s 149 164 67
379 RE c-comment many *s catching 434 422 201
380 RE c-comment nomatch 23 23 14
381 RE c-comment nomatch catching 25 26 16
382 RE c-comment simple 42 42 22
383 RE c-comment simple catching 153 154 81
384 RE count all matches 130 128 59
385 RE extract all matches 142 142 72
386 RE literal regexp 27 28 14
387 RE n-char long-end 74 74 34
388 RE n-char long-end catching 120 121 61
389 RE n-char long-middle 46 47 22
390 RE n-char long-middle catching 92 93 49
391 RE n-char long-start 19 19 10
392 RE n-char long-start catching 79 66 36
393 RE n-char short 19 19 10
394 RE n-char short catching 62 63 36
395 RE static anchored match 4 18 2
396 RE static anchored nomatch 4 4 3
397 RE static l-anchored match 4 4 3
398 RE static l-anchored nomatch 4 4 3
399 RE static long match 14 15 10
400 RE static long nomatch 20 21 12
401 RE static r-anchored match 4 5 3
402 RE static r-anchored nomatch 4 5 3
403 RE static short match 4 5 3
404 RE static short nomatch 4 4 3
405 RE var-based regexp 29 29 15
406 READ 605K, gets 163940 169408 99908
407 READ 605K, read 65849 64934 44367
408 READ 605K, read & size 64567 64484 45668
409 READ 3100b, gets 1901 1948 2051
410 READ 3100b, read 1337 1354 1735
411 READ 3100b, read & size 1596 1603 2068
412 READ bin 605K, gets 157866 164981 98726
413 READ bin 605K, read 20194 19921 19150
414 READ bin 605K, read & size 20188 19183 19298
415 READ bin 3100b, gets 1928 1999 1640
416 READ bin 3100b, read 1176 1179 1166
417 READ bin 3100b, read & size 1412 1421 1396
418 SHA sha1 msg len 10 3095 3261 2000
419 SHA sha1 msg len 100 5729 6218 3557
420 SHA sha1 msg len 1000 43215 46441 26973
421 SHA sha1 msg len 10000 431134 467334 259333
422 SHA sha1DF msg len 10 1295 1167 722
423 SHA sha1DF msg len 100 2184 2208 1355
424 SHA sha1DF msg len 1000 17745 17771 10502
425 SHA sha1DF msg len 10000 166121 166114 100418
426 SPLIT iter, 4000 uchars 4012 3884 2323
427 SPLIT iter, 4010 chars 3902 3867 2249
428 SPLIT iter, rand 100 c 251 244 185
429 SPLIT iter, rand 1000 c 1446 1464 951
430 SPLIT iter, rand 10000 c 10729 10771 6792
431 SPLIT on 'c', 4000 uchars 204 206 166
432 SPLIT on 'c', 4010 chars 206 238 161
433 SPLIT on 'c?', 4000 uchars 786 788 578
434 SPLIT on 'c?', 4010 chars 625 598 413
435 SPLIT on 'cz', 4000 uchars 681 680 427
436 SPLIT on 'cz', 4010 chars 683 648 414
437 SPLIT, 4000 uchars 1220 1136 698
438 SPLIT, 4010 chars 1014 1008 666
439 SPLIT, rand 100 c 178 204 143
440 SPLIT, rand 1000 c 737 745 582
441 SPLIT, rand 10000 c 3314 3302 2646
442 STR append 30 46 23
443 STR append (1KB + 1KB) 21 22 12
444 STR append (1MB + (1b + 1K + 1b) * 100) 22654 22652 22044
445 STR append (1MB + 1KB * 20) 21686 21607 21680
446 STR append (1MB + 1KB * 1000) 29730 29851 28928
447 STR append (1MB + 1KB) 21789 21728 21190
448 STR append (1MB + 1MB * 3) 53600 53811 52478
449 STR append (1MB + 1MB * 5) 105474 105510 105395
450 STR append (1MB + 2b * 1000) 22574 22628 21937
451 STR append (10KB + 1KB) 28 29 22
452 STR first (failure) 85 72 31
453 STR first (failure) utf 69 70 31
454 STR first (success) 8 9 5
455 STR first (success) utf 8 9 5
456 STR first (total failure) 63 63 27
457 STR first (total failure) utf 65 63 27
458 STR index 0 9 9 5
459 STR index 100 9 9 5
460 STR index 500 11 9 6
461 STR info locals match 344 350 209
462 STR last (failure) 67 67 42
463 STR last (success) 8 8 5
464 STR last (total failure) 61 71 33
465 STR length (==4010) 6 6 4
466 STR length growing (1000) 1085 1140 674
467 STR length growing uc (1000) 1101 1110 675
468 STR length of a LIST 5 6 3
469 STR length static str 4 4 2
470 STR match, complex (failure) 65 65 42
471 STR match, complex (success early) 7 8 4
472 STR match, complex (success late) 83 81 59
473 STR match, complex (total failure) 51 51 26
474 STR match, exact (failure) 4 4 3
475 STR match, exact (success) 4 4 2
476 STR match, exact -nocase (failure) 4 4 3
477 STR match, exact -nocase (success) 5 6 3
478 STR match, simple (failure) 4 4 3
479 STR match, simple (success) 4 4 3
480 STR range, index 100..200 of 4010 11 11 7
481 STR repeat, 4010 chars * 10 125 125 43
482 STR repeat, 4010 chars * 100 1556 1538 1889
483 STR repeat, abcdefghij * 10 7 7 5
484 STR repeat, abcdefghij * 100 12 12 10
485 STR repeat, abcdefghij * 1000 65 65 67
486 STR replace, equal replacement 29 30 22
487 STR replace, longer replacement 29 28 23
488 STR replace, no replacement 26 26 21
489 STR reverse iter/append, 10 c 37 43 29
490 STR reverse iter/append, 10 uc 37 42 28
491 STR reverse iter/append, 100 c 238 282 180
492 STR reverse iter/append, 100 uc 252 277 197
493 STR reverse iter/append, 400 c 897 1043 704
494 STR reverse iter/append, 400 uc 925 1075 747
495 STR reverse iter/set, 10 c 42 40 30
496 STR reverse iter/set, 10 uc 40 41 28
497 STR reverse iter/set, 100 c 310 315 240
498 STR reverse iter/set, 100 uc 333 326 248
499 STR reverse iter/set, 400 c 1308 1349 1009
500 STR reverse iter/set, 400 uc 1344 1360 1030
501 STR reverse recursive, 10 c 106 104 73
502 STR reverse recursive, 10 uc 98 102 69
503 STR reverse recursive, 100 c 1057 1059 741
504 STR reverse recursive, 100 uc 1005 990 691
505 STR reverse recursive, 400 c ERR ERR 6004
506 STR reverse recursive, 400 uc ERR ERR 6170
507 STR str $a eq $b 9 10 5
508 STR str $a eq $b (same obj) 9 10 5
509 STR str $a equal "" 6 9 4
510 STR str $a ne $b 10 10 6
511 STR str $a ne $b (same obj) 9 9 5
512 STR str num == "" 6 7 4
513 STR string compare 10 10 6
514 STR string compare "" 8 9 5
515 STR string compare long 100 101 93
516 STR string compare long (same obj) 9 9 5
517 STR string compare mixed long 260 261 116
518 STR string compare uni long 301 319 103
519 STR string equal "" 7 8 4
520 STR string equal long (!= len) 17 17 9
521 STR string equal long (== len) 196 178 94
522 STR string equal long (same obj) 10 11 5
523 STR string equal mixed long 10 10 5
524 STR string equal uni long 205 202 107
525 STR/LIST length, obj shimmer 1632 1618 1636
526 SWITCH 1st true 17 18 10
527 SWITCH 2nd true 17 18 10
528 SWITCH 9th true 19 19 11
529 SWITCH default true 19 22 11
530 TRACE all set (rwu) 17 16 10
531 TRACE no trace set 17 17 10
532 TRACE read 17 16 12
533 TRACE unset 17 18 10
534 TRACE write 16 17 10
535 UNSET catch var !exist 30 31 24
536 UNSET catch var exists 6 6 4
537 UNSET info check var !exist 6 6 4
538 UNSET info check var exists 8 8 5
539 UNSET nocomplain var !exist 6 6 4
540 UNSET nocomplain var exists 6 6 4
541 UNSET var exists 5 5 4
542 VAR 'array set' of 100 elems 95 99 53
543 VAR 100 'set's in array 70 71 43
544 VAR access global 9 12 5
545 VAR access local proc arg 5 5 3
546 VAR access locally set 5 5 3
547 VAR access upvar 13 12 7
548 VAR mset 12 10 6
549 VAR mset (foreach) 7 8 4
550 VAR ref absolute 240 218 128
551 VAR ref local 35 33 18
552 VAR ref variable 38 41 22
553 VAR set array element 9 8 5
554 VAR set scalar 4 4 2
555 WORDCOUNT wc1 3091 3138 1803
556 WORDCOUNT wc2 648 656 560
557 WORDCOUNT wc3 587 601 506
557 BENCHMARKS 1:8.4.7 2:8.4.8 3:8.4.8
000 VERSIONS: 1:8.4.7 2:8.4.8 3:8.4.8
001 CANVAS cget/incr -width 14 14 10
002 CANVAS configure -bg 10 10 5
003 CANVAS configure all 114 111 93
004 CANVAS create 317 295 251
005 CANVAS create (one exists) 254 240 186
006 CANVAS draw-3 100 16790 16902 12449
007 CANVAS simple draw 10 1960 2032 1581
008 CANVAS simple draw 100 16961 17232 12690
009 CANVAS simple draw 1000 216915 225646 143645
010 ENTRY create 619 622 518
011 ENTRY create (one exists) 281 267 205
012 STARTUP time to launch wish 1739630 1319774 1224132
012 BENCHMARKS 1:8.4.7 2:8.4.8 3:8.4.8
HTML convert time: 0.006 sec.