Fix test and add skynet example.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
// A million fiber microbenchmark based on: https://github.com/atemerev/skynet.
|
||||
class Skynet {
|
||||
static makeFiber(num, size, div) {
|
||||
return Fiber.new {
|
||||
if (size == 1) {
|
||||
Fiber.yield(num)
|
||||
} else {
|
||||
var fibers = []
|
||||
for (i in 0...div) {
|
||||
var subNum = num + i * (size / div)
|
||||
fibers.add(makeFiber(subNum, size / div, div))
|
||||
}
|
||||
|
||||
var sum = 0
|
||||
for (task in fibers) {
|
||||
sum = sum + task.call()
|
||||
}
|
||||
Fiber.yield(sum)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var start = System.clock
|
||||
var result = Skynet.makeFiber(0, 1000000, 10).call()
|
||||
var end = System.clock
|
||||
System.print("Result: %(result) in %(end - start) s")
|
||||
Reference in New Issue
Block a user