Attachment "itcl-perf-trunk-vs-memopt.txt.diff" to
ticket [fe70356a54]
added by
sebres
2019-04-17 22:17:04.
diff --git "a/itcl-perf-trunk.txt" "b/itcl-perf-memopt.txt"
index eea7426..3e8256a 100644
--- "a/itcl-perf-trunk.txt"
+++ "b/itcl-perf-memopt.txt"
@@ -1,5 +1,5 @@
-Calibration ... done: 0.043795669348497164 �s/#-overhead
-testing with x64/itcl412-trunk
+Calibration ... done: 0.04383928921360391 �s/#-overhead
+testing with x64/itcl412-memopt-perf
==== 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
+537.504 �s/# 999 # 1860.5 #/sec 536.966 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
+532.474 �s/# 999 # 1878.0 #/sec 531.942 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
+170.553 �s/# 999 # 5863.3 #/sec 170.382 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
+174.125 �s/# 999 # 5743.0 #/sec 173.951 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.42 sec. (1.41 nett-sec.):
+1414.656000 �s/# 3996 # 2827.543 #/sec 1413.241 nett-ms
Average:
-14583.772500 �s/# 999 # 69 #/sec 14569.177 nett-ms
+353.664000 �s/# 999 # 2828 #/sec 353.310 nett-ms
Min:
-4466.60 �s/# 999 # 223.88 #/sec 4462.131 nett-ms
+170.553 �s/# 999 # 5863.3 #/sec 170.382 nett-ms
Max:
-29910.4 �s/# 999 # 33.433 #/sec 29880.451 nett-ms
+537.504 �s/# 999 # 1860.5 #/sec 536.966 nett-ms
********************************************************************************
==== class/var creation ====
== 1.0) class : ::timeClass0 ==
% declare vars ...
-207.353 �s/# 10000 # 4822.7 #/sec 2073.530 nett-ms
+133.024 �s/# 10000 # 7517.5 #/sec 1330.238 nett-ms
== 1.1) class : ::timeClass1 == inherite ::timeClass0
% inherit ::timeClass0
-29383.0 �s/# 1 # 34.033 #/sec 29.383 nett-ms
+35041.0 �s/# 1 # 28.538 #/sec 35.041 nett-ms
% declare vars ...
-57116.0 �s/# 876 # 17.508 #/sec 50033.599 nett-ms
+54989.2 �s/# 182 # 18.185 #/sec 10008.041 nett-ms
== 1.2) class : ::timeClass2 == inherite ::timeClass1
% inherit ::timeClass1
-33435.0 �s/# 1 # 29.909 #/sec 33.435 nett-ms
+30358.0 �s/# 1 # 32.940 #/sec 30.358 nett-ms
% declare vars ...
-63372.8 �s/# 789 # 15.780 #/sec 50001.166 nett-ms
+55763.0 �s/# 180 # 17.933 #/sec 10037.339 nett-ms
== 2.0) class : ::test-itcl-ns1::timeClass0 ==
% declare vars ...
-501.089 �s/# 10000 # 1995.7 #/sec 5010.889 nett-ms
+192.720 �s/# 10000 # 5188.9 #/sec 1927.197 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
+38005.0 �s/# 1 # 26.312 #/sec 38.005 nett-ms
% declare vars ...
-75369.9 �s/# 664 # 13.268 #/sec 50045.640 nett-ms
+72704.1 �s/# 138 # 13.754 #/sec 10033.171 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
+39973.0 �s/# 1 # 25.017 #/sec 39.973 nett-ms
% declare vars ...
-80394.0 �s/# 622 # 12.439 #/sec 50005.086 nett-ms
+72985.9 �s/# 138 # 13.701 #/sec 10072.049 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
+267.721 �s/# 10000 # 3735.2 #/sec 2677.211 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
+48422.0 �s/# 1 # 20.652 #/sec 48.422 nett-ms
% declare vars ...
-90893.2 �s/# 551 # 11.002 #/sec 50082.152 nett-ms
+88921.6 �s/# 113 # 11.246 #/sec 10048.140 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
+48788.0 �s/# 1 # 20.497 #/sec 48.788 nett-ms
% declare vars ...
-96940.1 �s/# 516 # 10.316 #/sec 50021.074 nett-ms
+91848.0 �s/# 109 # 10.888 #/sec 10011.434 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 23.07 sec. (22.83 nett-sec.):
+278247.321000 �s/# 10224 # 447.753 #/sec 22833.995 nett-ms
Average:
-57829.524800 �s/# 2213 # 103 #/sec 21533.408 nett-ms
+55649.464200 �s/# 2044 # 448 #/sec 4566.799 nett-ms
Min:
-746.324 �s/# 10000 # 1339.9 #/sec 7463.245 nett-ms
+267.721 �s/# 10000 # 3735.2 #/sec 2677.211 nett-ms
Max:
-96940.1 �s/# 516 # 10.316 #/sec 50021.074 nett-ms
+91848.0 �s/# 109 # 10.888 #/sec 10011.434 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
+2.230223 �s/# 9999 # 448385 #/sec 22.300 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.158416 �s/# 9999 # 463302 #/sec 21.582 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.168017 �s/# 9999 # 856152 #/sec 11.679 nett-ms
% # 1) obj-var in method compiled (public)
% o getpub1
1
-0.964896 �s/# 9999 # 1036380 #/sec 9.648 nett-ms
+0.998800 �s/# 9999 # 1001201 #/sec 9.987 nett-ms
% # 1) obj-var in method compiled (protected)
% o getpro1
1
-0.958396 �s/# 9999 # 1043410 #/sec 9.583 nett-ms
+0.985099 �s/# 9999 # 1015126 #/sec 9.850 nett-ms
% # 1) obj-var in method compiled (private)
% o getpri1
2
-0.937694 �s/# 9999 # 1066446 #/sec 9.376 nett-ms
+1.003900 �s/# 9999 # 996114 #/sec 10.038 nett-ms
% # 1) obj-var in method unknown
% o getunknown
1
-4.735474 �s/# 9999 # 211172 #/sec 47.350 nett-ms
+4.857286 �s/# 9999 # 205876 #/sec 48.568 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.925093 �s/# 9999 # 254771 #/sec 39.247 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.961696 �s/# 9999 # 252417 #/sec 39.613 nett-ms
% # 1) obj-var cfg/cget
% o configure -pub1
-pub1 0 0
-2.647365 �s/# 9999 # 377734 #/sec 26.471 nett-ms
+2.779878 �s/# 9999 # 359728 #/sec 27.796 nett-ms
% o cget -pub1
0
-2.295330 �s/# 9999 # 435667 #/sec 22.951 nett-ms
+2.397640 �s/# 9999 # 417076 #/sec 23.974 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.575358 �s/# 9999 # 634776 #/sec 15.752 nett-ms
% # 1) cls-com resolved
% o getv com1
-0.926893 �s/# 9999 # 1078873 #/sec 9.268 nett-ms
+1.020602 �s/# 9999 # 979813 #/sec 10.205 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.185519 �s/# 9999 # 457557 #/sec 21.853 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
+2.231023 �s/# 9999 # 448224 #/sec 22.308 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.149115 �s/# 9999 # 870234 #/sec 11.490 nett-ms
% # 2) obj-var in method compiled (public)
% o getpub1
1
-0.965097 �s/# 9999 # 1036165 #/sec 9.650 nett-ms
+1.005501 �s/# 9999 # 994529 #/sec 10.054 nett-ms
% # 2) obj-var in method compiled (protected)
% o getpro1
1
-0.972897 �s/# 9999 # 1027857 #/sec 9.728 nett-ms
+1.035904 �s/# 9999 # 965340 #/sec 10.358 nett-ms
% # 2) obj-var in method compiled (private)
% o getpri1
2
-0.965197 �s/# 9999 # 1036058 #/sec 9.651 nett-ms
+1.014201 �s/# 9999 # 985997 #/sec 10.141 nett-ms
% # 2) obj-var in method unknown
% o getunknown
1
-4.702270 �s/# 9999 # 212663 #/sec 47.018 nett-ms
+5.007001 �s/# 9999 # 199720 #/sec 50.065 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
+4.158616 �s/# 9999 # 240464 #/sec 41.582 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
+4.132913 �s/# 9999 # 241960 #/sec 41.325 nett-ms
% # 2) obj-var cfg/cget
% o configure -pub1
-pub1 0 0
-2.816682 �s/# 9999 # 355027 #/sec 28.164 nett-ms
+2.847985 �s/# 9999 # 351125 #/sec 28.477 nett-ms
% o cget -pub1
0
-2.410541 �s/# 9999 # 414844 #/sec 24.103 nett-ms
+2.456346 �s/# 9999 # 407108 #/sec 24.561 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.621762 �s/# 9999 # 616613 #/sec 16.216 nett-ms
% # 2) cls-com resolved
% o getv com1
-0.956396 �s/# 9999 # 1045592 #/sec 9.563 nett-ms
+0.992399 �s/# 9999 # 1007658 #/sec 9.923 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.104810 �s/# 9999 # 475102 #/sec 21.046 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.157816 �s/# 9999 # 463431 #/sec 21.576 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.112711 �s/# 9999 # 898705 #/sec 11.126 nett-ms
% # 3) obj-var in method compiled (public)
% o getpub1
1
-0.957996 �s/# 9999 # 1043845 #/sec 9.579 nett-ms
+1.008301 �s/# 9999 # 991767 #/sec 10.082 nett-ms
% # 3) obj-var in method compiled (protected)
% o getpro1
1
-0.926193 �s/# 9999 # 1079689 #/sec 9.261 nett-ms
+0.936294 �s/# 9999 # 1068041 #/sec 9.362 nett-ms
% # 3) obj-var in method compiled (private)
% o getpri1
2
-0.958096 �s/# 9999 # 1043736 #/sec 9.580 nett-ms
+0.979098 �s/# 9999 # 1021348 #/sec 9.790 nett-ms
% # 3) obj-var in method unknown
% o getunknown
1
-4.874287 �s/# 9999 # 205158 #/sec 48.738 nett-ms
+4.766177 �s/# 9999 # 209811 #/sec 47.657 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
+4.153515 �s/# 9999 # 240759 #/sec 41.531 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
+4.110511 �s/# 9999 # 243278 #/sec 41.101 nett-ms
% # 3) obj-var cfg/cget
% o configure -pub1
-pub1 0 0
-2.787379 �s/# 9999 # 358760 #/sec 27.871 nett-ms
+2.905891 �s/# 9999 # 344128 #/sec 29.056 nett-ms
% o cget -pub1
0
-2.465147 �s/# 9999 # 405655 #/sec 24.649 nett-ms
+2.588659 �s/# 9999 # 386300 #/sec 25.884 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.754475 �s/# 9999 # 569970 #/sec 17.543 nett-ms
% # 3) cls-com resolved
% o getv com1
-0.962396 �s/# 9999 # 1039073 #/sec 9.623 nett-ms
+1.004100 �s/# 9999 # 995916 #/sec 10.040 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.30 sec. (0.88 nett-sec.):
+88.482651 �s/# 389961 # 440764.384 #/sec 884.738 nett-ms
Average:
-2.167414 �s/# 9999 # 461379 #/sec 21.672 nett-ms
+2.268786 �s/# 9999 # 440756 #/sec 22.686 nett-ms
Min:
-0.926193 �s/# 9999 # 1079689 #/sec 9.261 nett-ms
+0.936294 �s/# 9999 # 1068041 #/sec 9.362 nett-ms
Max:
-4.874287 �s/# 9999 # 205158 #/sec 48.738 nett-ms
+5.007001 �s/# 9999 # 199720 #/sec 50.065 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
+36689.9 �s/# 28 # 27.255 #/sec 1027.317 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
+182536.8 �s/# 6 # 5.478 #/sec 1095.221 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
+224101.2 �s/# 5 # 4.462 #/sec 1120.506 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
+40222.2 �s/# 25 # 24.862 #/sec 1005.555 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
+185383.7 �s/# 6 # 5.394 #/sec 1112.302 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
+225169.8 �s/# 5 # 4.441 #/sec 1125.849 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
+40716.0 �s/# 25 # 24.560 #/sec 1017.900 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
+184532.5 �s/# 6 # 5.419 #/sec 1107.195 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
+226328.0 �s/# 5 # 4.418 #/sec 1131.640 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.22 sec. (9.74 nett-sec.):
+1345680.100000 �s/# 111 # 11.392 #/sec 9743.485 nett-ms
Average:
-149214.666667 �s/# 60 # 12 #/sec 5090.641 nett-ms
+149520.011111 �s/# 12 # 11 #/sec 1082.609 nett-ms
Min:
-35397.0 �s/# 142 # 28.251 #/sec 5026.373 nett-ms
+36689.9 �s/# 28 # 27.255 #/sec 1027.317 nett-ms
Max:
-227950.3 �s/# 22 # 4.387 #/sec 5014.906 nett-ms
+226328.0 �s/# 5 # 4.418 #/sec 1131.640 nett-ms
********************************************************************************