Reset Password
Existing players used to logging in with their character name and moo password must signup for a website account.
- SolBro 3s
- Napoleon 1s Bad bish is bad.
- arm0r3r 34s
- Jaydon2317 1m
- Ricksten 20s
- Manywaters 54s https://youtu.be/XsFneCExrCQ
c Butako 21m youtu.be/L4GrDOOIIbk
- janee 16m
- crashdown 20s
- Ghostinthekeys 1m
- Baron17 1m
- pfh 8m
- Storm 11m
- Marioanius 1m Hamilton wrote, the other 51!
- Strummer 41s
- batko 13m
- Rangerkrauser 3m https://www.youtube.com/watch?v=d5axbaGBVto
- Malanth 54s
- Hippo 37s
- Stelpher 8s
- Vivvykins 2m
- Noodles 7s
- DiamondNine 39s
- thecraftydragon 1m Grab a towel & coconuts for your horse. We're off!
a Cerberus 3m Head Builder & GM when I need to
- Atheran 22m
- geoux 2h
- Solshine 52s
- Dumpster 27s
- waddlerafter 15m
- ComradeNitro 6m
- RealHumanBean 56s Something?
- Cyberpunker 22m
- Archer 1m
- Fire 9m https://i.imgur.com/CF2ywFy.jpg
- Ephemeralis 1h
- Kiwi 2m I guess there's always something killing me.
- Evie 51s
- Lofi 7h
- SacredWest 1h
- jsmith225 1h
- vantablack 18s
- Melpothalia 2h That's Mrs. Broken Brain [Bottom Text] to you!
- Malestrom 35m
j Johnny 8h New Code Written Nightly. Not a GM.
And 34 more hiding and/or disguised
Connect to Sindome @ moo.sindome.org:5555 or just Play Now

Saving us 10 billion ticks/year
The MOO is faster now!

So, some of you may or may not know this but the MOO calculates the time it takes to execute a verb (a command) in ticks. Every time the code has to do something, like assign a variable, or do an if statement or many other things, it costs a tick.

If a command takes too many ticks, it is killed, resulting in a traceback. Because the MOO is single threaded, only one command can be executed at a time. That means ticks are at a premium.

Since our code is built, layer upon layer, on top of existing systems, one verb, calls another, calls another, which returns a value to the previous verb which continues and then calls another which then returns a value again and on and on it goes.

So one verb, might call 15 other verbs which call 15 other verbs which call 15 other verbs. Anyone familiar with software development will understand how that works.

Suffice to say, we have in our code, a command that is meant to 'alert' us on a special channel, when that line of code is hit. It only does this when 'debugging' is enabled on that particular object.

The check to see if debugging is enabled on that particular object takes 37 ticks.

The alert call is made roughly 679 times a minute (probably more, especially if there is combat or something else). And that means that even with debugging disabled, those calls cost us 25,123 ticks a minute.

For those of you keeping track at home, that adds up to:

25,123 ticks a minute

1,507,380 ticks an hour

36,177,120 ticks a day

13,204,648,800 ticks a year.

It's a lot. If you divide that by the maximum execution time of a single verb (without factoring in suspends to replenish ticks), with those ticks we could call:

264,092 verbs and let them reach maximum execution time.

I've put a check in place that lets us disable debug globally which only takes 7 ticks to execute. That means that for all 679 times our alert code is called each minute, we are saving 30 ticks.

That's a savings of:

20,370 a minute

1,222,200 an hour

29,332,800 a day

10,677,139,200 a year.

The MOO is faster now! Literally faster. You may even move between rooms faster. Though you probably don't notice it in times when a bunch of combat and stuff is going on, it will hopefully be noticeable when those times of heavy RP and combat and other things that require a lot of the game.

More savings to come!

-- S

More saving, more doing. The Sindome Depot.

This is why profiling is important.

And suspend(). To keep a task from reaching its tick quota.

Suspend is what makes profiling so difficult to do on a MOO. Replenishing ticks makes it difficult to see just how many a specific task took. You can check how -long- in microseconds something took, but even that is subjective because if you benchmark something during a light time on the MOO and it takes 6 seconds and then during a heavy time it will take 9-12 seconds because of all the suspends used to replenish ticks, which in turn had to wait their turn for other tasks to complete.