Itcl - the [incr Tcl] extension

Artifact [8f88fbe4bd]
Login

Artifact 8f88fbe4bd50cfc0b6cae677c8b708b34fb87a19ec2dd34eb13937300281e158:

Attachment "itcl-perf-trunk-vs-on-dmnd-res.txt.diff" to ticket [fe70356a54] added by sebres 2019-04-17 22:17:41.
diff --git "a/itcl-perf-trunk.txt" "b/itcl-perf-on-dmnd-resolver.txt"
index eea7426..1ec3d5e 100644
--- "a/itcl-perf-trunk.txt"
+++ "b/itcl-perf-on-dmnd-resolver.txt"
@@ -1,5 +1,5 @@
-Calibration ... done: 0.043795669348497164 �s/#-overhead
-testing with x64/itcl412-trunk
+Calibration ... done: 0.04378798150660412 �s/#-overhead
+testing with x64/itcl412-on-dmnd-resolver
 ==== initialization (preserve/release) ====
 
 % setup {set i 0; set k 0}
@@ -7,103 +7,103 @@ testing with x64/itcl412-trunk
 % ## 1) create up-to 1000 classes (with 100 vars):
 % itcl::class timeClass[incr i] { for {set j 0} {$j<100} {incr j} { public variable d$j } }
 
-8985.29 �s/# 999 # 111.29 #/sec 8976.303 nett-ms
+500.756 �s/# 999 # 1997.0 #/sec 500.255 nett-ms
 
 % ## 2) create up-to 1000 classes (with 100 vars):
 % itcl::class finiClass[incr k] { for {set j 0} {$j<100} {incr j} { public variable d$j } }
 
-29910.4 �s/# 999 # 33.433 #/sec 29880.451 nett-ms
+482.616 �s/# 999 # 2072.0 #/sec 482.133 nett-ms
 
 % ## 2) delete up-to 1000 classes:
 % itcl::delete class finiClass$k; if {[incr k -1] <= 0} break
 
-14972.8 �s/# 999 # 66.788 #/sec 14957.824 nett-ms
+143.973 �s/# 999 # 6945.7 #/sec 143.829 nett-ms
 
 % cleanup {while {$k > 0} {itcl::delete class finiClass$k; incr k -1}}
 
 % ## 1) delete up-to 1000 classes:
 % itcl::delete class timeClass$i; if {[incr i -1] <= 0} break
 
-4466.60 �s/# 999 # 223.88 #/sec 4462.131 nett-ms
+147.164 �s/# 999 # 6795.1 #/sec 147.017 nett-ms
 
 % cleanup {while {$i > 0} {itcl::delete class timeClass$i; incr i -1}}
 
 ********************************************************************************
-Total 4 cases in 58.34 sec. (58.28 nett-sec.):
-58335.090000 �s/# 3996 # 68.569 #/sec 58276.709 nett-ms
+Total 4 cases in 1.28 sec. (1.27 nett-sec.):
+1274.509000 �s/# 3996 # 3138.465 #/sec 1273.234 nett-ms
 Average:
-14583.772500 �s/# 999 # 69 #/sec 14569.177 nett-ms
+318.627250 �s/# 999 # 3138 #/sec 318.308 nett-ms
 Min:
-4466.60 �s/# 999 # 223.88 #/sec 4462.131 nett-ms
+143.973 �s/# 999 # 6945.7 #/sec 143.829 nett-ms
 Max:
-29910.4 �s/# 999 # 33.433 #/sec 29880.451 nett-ms
+500.756 �s/# 999 # 1997.0 #/sec 500.255 nett-ms
 ********************************************************************************
 
 ==== class/var creation ====
 
 == 1.0) class : ::timeClass0 == 
 % declare vars ...
-207.353 �s/# 10000 # 4822.7 #/sec 2073.530 nett-ms
+11.1671 �s/# 10000 # 89548.8 #/sec 111.671 nett-ms
 
 == 1.1) class : ::timeClass1 == inherite ::timeClass0
 % inherit ::timeClass0
-29383.0 �s/# 1 # 34.033 #/sec 29.383 nett-ms
+32.0000 �s/# 1 # 31250.0 #/sec 0.032 nett-ms
 
 % declare vars ...
-57116.0 �s/# 876 # 17.508 #/sec 50033.599 nett-ms
+12.1805 �s/# 10000 # 82098.4 #/sec 121.805 nett-ms
 
 == 1.2) class : ::timeClass2 == inherite ::timeClass1
 % inherit ::timeClass1
-33435.0 �s/# 1 # 29.909 #/sec 33.435 nett-ms
+36.0000 �s/# 1 # 27777.8 #/sec 0.036 nett-ms
 
 % declare vars ...
-63372.8 �s/# 789 # 15.780 #/sec 50001.166 nett-ms
+12.7137 �s/# 10000 # 78655.3 #/sec 127.137 nett-ms
 
 == 2.0) class : ::test-itcl-ns1::timeClass0 == 
 % declare vars ...
-501.089 �s/# 10000 # 1995.7 #/sec 5010.889 nett-ms
+11.7975 �s/# 10000 # 84763.7 #/sec 117.975 nett-ms
 
 == 2.1) class : ::test-itcl-ns1::timeClass1 == inherite ::test-itcl-ns1::timeClass0
 % inherit ::test-itcl-ns1::timeClass0
-41398.0 �s/# 1 # 24.156 #/sec 41.398 nett-ms
+27.0000 �s/# 1 # 37037.0 #/sec 0.027 nett-ms
 
 % declare vars ...
-75369.9 �s/# 664 # 13.268 #/sec 50045.640 nett-ms
+13.5809 �s/# 10000 # 73632.8 #/sec 135.809 nett-ms
 
 == 2.2) class : ::test-itcl-ns1::timeClass2 == inherite ::test-itcl-ns1::timeClass1
 % inherit ::test-itcl-ns1::timeClass1
-43207.0 �s/# 1 # 23.144 #/sec 43.207 nett-ms
+50.0000 �s/# 1 # 20000.0 #/sec 0.050 nett-ms
 
 % declare vars ...
-80394.0 �s/# 622 # 12.439 #/sec 50005.086 nett-ms
+14.0993 �s/# 10000 # 70925.5 #/sec 140.993 nett-ms
 
 == 3.0) class : ::test-itcl-ns1::test-itcl-ns2::timeClass0 == 
 % declare vars ...
-746.324 �s/# 10000 # 1339.9 #/sec 7463.245 nett-ms
+12.1779 �s/# 10000 # 82116.0 #/sec 121.779 nett-ms
 
 == 3.1) class : ::test-itcl-ns1::test-itcl-ns2::timeClass1 == inherite ::test-itcl-ns1::test-itcl-ns2::timeClass0
 % inherit ::test-itcl-ns1::test-itcl-ns2::timeClass0
-48804.0 �s/# 1 # 20.490 #/sec 48.804 nett-ms
+28.0000 �s/# 1 # 35714.3 #/sec 0.028 nett-ms
 
 % declare vars ...
-90893.2 �s/# 551 # 11.002 #/sec 50082.152 nett-ms
+13.2751 �s/# 10000 # 75329.0 #/sec 132.751 nett-ms
 
 == 3.2) class : ::test-itcl-ns1::test-itcl-ns2::timeClass2 == inherite ::test-itcl-ns1::test-itcl-ns2::timeClass1
 % inherit ::test-itcl-ns1::test-itcl-ns2::timeClass1
-51764.0 �s/# 1 # 19.318 #/sec 51.764 nett-ms
+52.0000 �s/# 1 # 19230.8 #/sec 0.052 nett-ms
 
 % declare vars ...
-96940.1 �s/# 516 # 10.316 #/sec 50021.074 nett-ms
+14.1397 �s/# 10000 # 70722.9 #/sec 141.397 nett-ms
 
 ********************************************************************************
-Total 5 cases in 107.92 sec. (107.67 nett-sec.):
-289147.624000 �s/# 11069 # 102.808 #/sec 107667.039 nett-ms
+Total 5 cases in 0.40 sec. (0.40 nett-sec.):
+119.592700 �s/# 30002 # 75761.287 #/sec 396.007 nett-ms
 Average:
-57829.524800 �s/# 2213 # 103 #/sec 21533.408 nett-ms
+23.918540 �s/# 6000 # 75757 #/sec 79.201 nett-ms
 Min:
-746.324 �s/# 10000 # 1339.9 #/sec 7463.245 nett-ms
+12.1779 �s/# 10000 # 82116.0 #/sec 121.779 nett-ms
 Max:
-96940.1 �s/# 516 # 10.316 #/sec 50021.074 nett-ms
+52.0000 �s/# 1 # 19230.8 #/sec 0.052 nett-ms
 ********************************************************************************
 
 ==== var access ====
@@ -114,41 +114,41 @@ Max:
 0
 % o getv pub[incr j]
 0
-1.979798 �s/# 9999 # 505102 #/sec 19.796 nett-ms
+1.929293 �s/# 9999 # 518324 #/sec 19.291 nett-ms
 
 % # 1) obj-var get (resolved)
 % setup {set j 0}
 0
 % o getv pub[incr j]
 0
-1.913991 �s/# 9999 # 522468 #/sec 19.138 nett-ms
+2.019902 �s/# 9999 # 495073 #/sec 20.197 nett-ms
 
 % # 1) obj-var resolved
 % setup {set j 0}
 0
 % o getv pub1
 0
-1.058306 �s/# 9999 # 944906 #/sec 10.582 nett-ms
+1.123012 �s/# 9999 # 890462 #/sec 11.229 nett-ms
 
 % # 1) obj-var in method compiled (public)
 % o getpub1
 1
-0.964896 �s/# 9999 # 1036380 #/sec 9.648 nett-ms
+0.972397 �s/# 9999 # 1028386 #/sec 9.723 nett-ms
 
 % # 1) obj-var in method compiled (protected)
 % o getpro1
 1
-0.958396 �s/# 9999 # 1043410 #/sec 9.583 nett-ms
+0.979398 �s/# 9999 # 1021035 #/sec 9.793 nett-ms
 
 % # 1) obj-var in method compiled (private)
 % o getpri1
 2
-0.937694 �s/# 9999 # 1066446 #/sec 9.376 nett-ms
+0.982398 �s/# 9999 # 1017917 #/sec 9.823 nett-ms
 
 % # 1) obj-var in method unknown
 % o getunknown
 1
-4.735474 �s/# 9999 # 211172 #/sec 47.350 nett-ms
+4.717572 �s/# 9999 # 211973 #/sec 47.171 nett-ms
 
 % cleanup {itcl::delete object o}
 
@@ -157,35 +157,35 @@ Max:
 0
 % o cget -pub[incr j]
 0
-3.869187 �s/# 9999 # 258452 #/sec 38.688 nett-ms
+3.355336 �s/# 9999 # 298032 #/sec 33.550 nett-ms
 
 % # 1) obj-var cget (resolved):
 % setup {set j 0}
 0
 % o cget -pub[incr j]
 0
-3.782478 �s/# 9999 # 264376 #/sec 37.821 nett-ms
+3.395240 �s/# 9999 # 294530 #/sec 33.949 nett-ms
 
 % # 1) obj-var cfg/cget
 % o configure -pub1
 -pub1 0 0
-2.647365 �s/# 9999 # 377734 #/sec 26.471 nett-ms
+2.403140 �s/# 9999 # 416122 #/sec 24.029 nett-ms
 
 % o cget -pub1
 0
-2.295330 �s/# 9999 # 435667 #/sec 22.951 nett-ms
+2.087909 �s/# 9999 # 478948 #/sec 20.877 nett-ms
 
 % # 1) cls-com resolve
 % setup {set j 0}
 0
 % o getv com[incr j]; if {$j >= 1000} {set j 0}
 
-1.665767 �s/# 9999 # 600324 #/sec 16.656 nett-ms
+1.600460 �s/# 9999 # 624820 #/sec 16.003 nett-ms
 
 % # 1) cls-com resolved
 % o getv com1
 
-0.926893 �s/# 9999 # 1078873 #/sec 9.268 nett-ms
+1.026503 �s/# 9999 # 974181 #/sec 10.264 nett-ms
 
 % cleanup {itcl::delete object o}
 
@@ -195,41 +195,41 @@ Max:
 0
 % o getv pub[incr j]
 0
-2.063906 �s/# 9999 # 484518 #/sec 20.637 nett-ms
+2.029703 �s/# 9999 # 492682 #/sec 20.295 nett-ms
 
 % # 2) obj-var get (resolved)
 % setup {set j 0}
 0
 % o getv pub[incr j]
 0
-2.017602 �s/# 9999 # 495637 #/sec 20.174 nett-ms
+1.973997 �s/# 9999 # 506586 #/sec 19.738 nett-ms
 
 % # 2) obj-var resolved
 % setup {set j 0}
 0
 % o getv pub1
 0
-1.047905 �s/# 9999 # 954285 #/sec 10.478 nett-ms
+1.108011 �s/# 9999 # 902518 #/sec 11.079 nett-ms
 
 % # 2) obj-var in method compiled (public)
 % o getpub1
 1
-0.965097 �s/# 9999 # 1036165 #/sec 9.650 nett-ms
+0.966197 �s/# 9999 # 1034986 #/sec 9.661 nett-ms
 
 % # 2) obj-var in method compiled (protected)
 % o getpro1
 1
-0.972897 �s/# 9999 # 1027857 #/sec 9.728 nett-ms
+0.962996 �s/# 9999 # 1038425 #/sec 9.629 nett-ms
 
 % # 2) obj-var in method compiled (private)
 % o getpri1
 2
-0.965197 �s/# 9999 # 1036058 #/sec 9.651 nett-ms
+0.952095 �s/# 9999 # 1050315 #/sec 9.520 nett-ms
 
 % # 2) obj-var in method unknown
 % o getunknown
 1
-4.702270 �s/# 9999 # 212663 #/sec 47.018 nett-ms
+4.743174 �s/# 9999 # 210829 #/sec 47.427 nett-ms
 
 % cleanup {itcl::delete object o}
 
@@ -238,35 +238,35 @@ Max:
 0
 % o cget -pub[incr j]
 0
-3.929693 �s/# 9999 # 254472 #/sec 39.293 nett-ms
+3.570957 �s/# 9999 # 280036 #/sec 35.706 nett-ms
 
 % # 2) obj-var cget (resolved):
 % setup {set j 0}
 0
 % o cget -pub[incr j]
 0
-3.929893 �s/# 9999 # 254459 #/sec 39.295 nett-ms
+3.458946 �s/# 9999 # 289105 #/sec 34.586 nett-ms
 
 % # 2) obj-var cfg/cget
 % o configure -pub1
 -pub1 0 0
-2.816682 �s/# 9999 # 355027 #/sec 28.164 nett-ms
+2.441944 �s/# 9999 # 409509 #/sec 24.417 nett-ms
 
 % o cget -pub1
 0
-2.410541 �s/# 9999 # 414844 #/sec 24.103 nett-ms
+2.141414 �s/# 9999 # 466981 #/sec 21.412 nett-ms
 
 % # 2) cls-com resolve
 % setup {set j 0}
 0
 % o getv com[incr j]; if {$j >= 1000} {set j 0}
 
-1.626563 �s/# 9999 # 614793 #/sec 16.264 nett-ms
+1.631863 �s/# 9999 # 612796 #/sec 16.317 nett-ms
 
 % # 2) cls-com resolved
 % o getv com1
 
-0.956396 �s/# 9999 # 1045592 #/sec 9.563 nett-ms
+0.981098 �s/# 9999 # 1019266 #/sec 9.810 nett-ms
 
 % cleanup {itcl::delete object o}
 
@@ -276,41 +276,41 @@ Max:
 0
 % o getv pub[incr j]
 0
-2.061406 �s/# 9999 # 485105 #/sec 20.612 nett-ms
+2.074907 �s/# 9999 # 481949 #/sec 20.747 nett-ms
 
 % # 3) obj-var get (resolved)
 % setup {set j 0}
 0
 % o getv pub[incr j]
 0
-1.985799 �s/# 9999 # 503575 #/sec 19.856 nett-ms
+2.038804 �s/# 9999 # 490483 #/sec 20.386 nett-ms
 
 % # 3) obj-var resolved
 % setup {set j 0}
 0
 % o getv pub1
 0
-1.031103 �s/# 9999 # 969835 #/sec 10.310 nett-ms
+1.158216 �s/# 9999 # 863396 #/sec 11.581 nett-ms
 
 % # 3) obj-var in method compiled (public)
 % o getpub1
 1
-0.957996 �s/# 9999 # 1043845 #/sec 9.579 nett-ms
+0.979998 �s/# 9999 # 1020410 #/sec 9.799 nett-ms
 
 % # 3) obj-var in method compiled (protected)
 % o getpro1
 1
-0.926193 �s/# 9999 # 1079689 #/sec 9.261 nett-ms
+0.944594 �s/# 9999 # 1058655 #/sec 9.445 nett-ms
 
 % # 3) obj-var in method compiled (private)
 % o getpri1
 2
-0.958096 �s/# 9999 # 1043736 #/sec 9.580 nett-ms
+0.946895 �s/# 9999 # 1056083 #/sec 9.468 nett-ms
 
 % # 3) obj-var in method unknown
 % o getunknown
 1
-4.874287 �s/# 9999 # 205158 #/sec 48.738 nett-ms
+4.571757 �s/# 9999 # 218734 #/sec 45.713 nett-ms
 
 % cleanup {itcl::delete object o}
 
@@ -319,47 +319,47 @@ Max:
 0
 % o cget -pub[incr j]
 0
-3.882688 �s/# 9999 # 257553 #/sec 38.823 nett-ms
+3.546855 �s/# 9999 # 281939 #/sec 35.465 nett-ms
 
 % # 3) obj-var cget (resolved):
 % setup {set j 0}
 0
 % o cget -pub[incr j]
 0
-3.894689 �s/# 9999 # 256759 #/sec 38.943 nett-ms
+3.533753 �s/# 9999 # 282985 #/sec 35.334 nett-ms
 
 % # 3) obj-var cfg/cget
 % o configure -pub1
 -pub1 0 0
-2.787379 �s/# 9999 # 358760 #/sec 27.871 nett-ms
+2.588759 �s/# 9999 # 386285 #/sec 25.885 nett-ms
 
 % o cget -pub1
 0
-2.465147 �s/# 9999 # 405655 #/sec 24.649 nett-ms
+2.215222 �s/# 9999 # 451422 #/sec 22.150 nett-ms
 
 % # 3) cls-com resolve
 % setup {set j 0}
 0
 % o getv com[incr j]; if {$j >= 1000} {set j 0}
 
-1.601760 �s/# 9999 # 624313 #/sec 16.016 nett-ms
+1.664366 �s/# 9999 # 600829 #/sec 16.642 nett-ms
 
 % # 3) cls-com resolved
 % o getv com1
 
-0.962396 �s/# 9999 # 1039073 #/sec 9.623 nett-ms
+1.050205 �s/# 9999 # 952195 #/sec 10.501 nett-ms
 
 % cleanup {itcl::delete object o}
 
 ********************************************************************************
-Total 39 cases in 2.23 sec. (0.85 nett-sec.):
-84.529156 �s/# 389961 # 461379.283 #/sec 845.207 nett-ms
+Total 39 cases in 2.22 sec. (0.81 nett-sec.):
+80.869286 �s/# 389961 # 482259.724 #/sec 808.612 nett-ms
 Average:
-2.167414 �s/# 9999 # 461379 #/sec 21.672 nett-ms
+2.073571 �s/# 9999 # 482251 #/sec 20.734 nett-ms
 Min:
-0.926193 �s/# 9999 # 1079689 #/sec 9.261 nett-ms
+0.944594 �s/# 9999 # 1058655 #/sec 9.445 nett-ms
 Max:
-4.874287 �s/# 9999 # 205158 #/sec 48.738 nett-ms
+4.743174 �s/# 9999 # 210829 #/sec 47.427 nett-ms
 ********************************************************************************
 
 ==== object instance ====
@@ -370,19 +370,19 @@ Max:
 % # 1) create :
 % ::timeClass0 o[incr i]
 o1
-35397.0 �s/# 142 # 28.251 #/sec 5026.373 nett-ms
+35076.3 �s/# 29 # 28.509 #/sec 1017.214 nett-ms
 
 % # 1) delete:
 % itcl::delete object o$i; if {[incr i -1] <= 0} break
 
-180934.7 �s/# 28 # 5.527 #/sec 5066.171 nett-ms
+185408.0 �s/# 6 # 5.394 #/sec 1112.448 nett-ms
 
 % cleanup {while {$i > 0} {itcl::delete object o$i; incr i -1}}
 
 % # 1) create + delete:
 % ::timeClass0 o; itcl::delete object o
 
-226061.9 �s/# 23 # 4.424 #/sec 5199.424 nett-ms
+223634.8 �s/# 5 # 4.472 #/sec 1118.174 nett-ms
 
 == 2) class : ::test-itcl-ns1::timeClass0 ==
 % setup {set i 0}
@@ -390,19 +390,19 @@ o1
 % # 2) create :
 % ::test-itcl-ns1::timeClass0 o[incr i]
 o1
-39116.9 �s/# 128 # 25.564 #/sec 5006.959 nett-ms
+38458.1 �s/# 27 # 26.002 #/sec 1038.369 nett-ms
 
 % # 2) delete:
 % itcl::delete object o$i; if {[incr i -1] <= 0} break
 
-185261.1 �s/# 28 # 5.398 #/sec 5187.310 nett-ms
+183330.3 �s/# 6 # 5.455 #/sec 1099.982 nett-ms
 
 % cleanup {while {$i > 0} {itcl::delete object o$i; incr i -1}}
 
 % # 2) create + delete:
 % ::test-itcl-ns1::timeClass0 o; itcl::delete object o
 
-225020.7 �s/# 23 # 4.444 #/sec 5175.476 nett-ms
+228374.4 �s/# 5 # 4.379 #/sec 1141.872 nett-ms
 
 == 3) class : ::test-itcl-ns1::test-itcl-ns2::timeClass0 ==
 % setup {set i 0}
@@ -410,29 +410,29 @@ o1
 % # 3) create :
 % ::test-itcl-ns1::test-itcl-ns2::timeClass0 o[incr i]
 o1
-39692.3 �s/# 126 # 25.194 #/sec 5001.229 nett-ms
+39378.6 �s/# 26 # 25.394 #/sec 1023.844 nett-ms
 
 % # 3) delete:
 % itcl::delete object o$i; if {[incr i -1] <= 0} break
 
-183497.1 �s/# 28 # 5.450 #/sec 5137.920 nett-ms
+184561.5 �s/# 6 # 5.418 #/sec 1107.369 nett-ms
 
 % cleanup {while {$i > 0} {itcl::delete object o$i; incr i -1}}
 
 % # 3) create + delete:
 % ::test-itcl-ns1::test-itcl-ns2::timeClass0 o; itcl::delete object o
 
-227950.3 �s/# 22 # 4.387 #/sec 5014.906 nett-ms
+225806.4 �s/# 5 # 4.429 #/sec 1129.032 nett-ms
 
 ********************************************************************************
-Total 9 cases in 104.66 sec. (45.82 nett-sec.):
-1342932.000000 �s/# 548 # 11.961 #/sec 45815.768 nett-ms
+Total 9 cases in 22.88 sec. (9.79 nett-sec.):
+1344028.400000 �s/# 115 # 11.749 #/sec 9788.304 nett-ms
 Average:
-149214.666667 �s/# 60 # 12 #/sec 5090.641 nett-ms
+149336.488889 �s/# 12 # 11 #/sec 1087.589 nett-ms
 Min:
-35397.0 �s/# 142 # 28.251 #/sec 5026.373 nett-ms
+35076.3 �s/# 29 # 28.509 #/sec 1017.214 nett-ms
 Max:
-227950.3 �s/# 22 # 4.387 #/sec 5014.906 nett-ms
+228374.4 �s/# 5 # 4.379 #/sec 1141.872 nett-ms
 ********************************************************************************