# ========================================================= package require libmyoox > 1.0 ::myooX::ClassN ::myooC { proc myooC { myNs arg1 arg2 arg3 } { namespace upvar $myNs my my set my(val1) $arg1 set my(val2) $arg2 set my(val3) $arg3 } proc getVal {myNs} { namespace upvar $myNs my my return "$my(val1)-$my(val2)-$my(val3)" } proc getVal1 {myNs} { namespace upvar $myNs my my set my(val1) } } > ::myooC # create instance set myooRef [::myooX::NewN ::myooC abc 123 xyz] > ::myooC::myooC-1 # link instance with local reference namespace upvar $myooRef my(val1) val1 > # ========================================================= # START test # performance test 1: create/delete instance time { ::myooX::DestroyN [::myooX::NewN ::myooC abc 123 xyz] } 1000 > 33.714 microseconds per iteration # performance test 2: call instance method time { ::myooC::getVal $myooRef } 1000 > 8.787 microseconds per iteration # performance test 3: direct access instance attribute time { set val1 } 1000 > 2.287 microseconds per iteration