Files
wren/test/benchmark/method_call.wren
T

69 lines
1.3 KiB
Plaintext
Raw Normal View History

2013-12-07 18:43:39 -08:00
class Toggle {
construct new(startState) {
2013-12-07 18:43:39 -08:00
_state = startState
}
2014-04-03 07:48:19 -07:00
value { _state }
2013-12-07 18:43:39 -08:00
activate {
_state = !_state
return this
}
}
class NthToggle is Toggle {
construct new(startState, maxCounter) {
super(startState)
2013-12-07 18:43:39 -08:00
_countMax = maxCounter
_count = 0
}
activate {
_count = _count + 1
if (_count >= _countMax) {
2013-12-18 07:37:41 -08:00
super.activate
2013-12-07 18:43:39 -08:00
_count = 0
}
return this
}
}
2015-09-15 07:46:09 -07:00
var start = System.clock
2013-12-25 15:01:45 -08:00
var n = 100000
2013-12-07 18:43:39 -08:00
var val = true
2015-07-10 09:18:22 -07:00
var toggle = Toggle.new(val)
2013-12-07 18:43:39 -08:00
2013-12-25 15:01:45 -08:00
for (i in 0...n) {
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
val = toggle.activate.value
2013-12-07 18:43:39 -08:00
val = toggle.activate.value
}
2015-09-15 07:46:09 -07:00
System.print(toggle.value)
2013-12-07 18:43:39 -08:00
val = true
2015-07-10 09:18:22 -07:00
var ntoggle = NthToggle.new(val, 3)
2013-12-07 18:43:39 -08:00
2013-12-25 15:01:45 -08:00
for (i in 0...n) {
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
val = ntoggle.activate.value
2013-12-07 18:43:39 -08:00
val = ntoggle.activate.value
}
2015-09-15 07:46:09 -07:00
System.print(ntoggle.value)
2015-11-11 07:55:48 -08:00
System.print("elapsed: %(System.clock - start)")