# =========================================================
package require tclmyoox
> 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
> 65.288 microseconds per iteration

# performance test 2: call instance method 
time { ::myooC::getVal $myooRef } 1000
> 8.826 microseconds per iteration

# performance test 3: direct access instance attribute
time { set val1 } 1000
> 2.255 microseconds per iteration