Advanced Monitoring Tool

Panserbjoern

Member
Contributor
Architecture
Hi

Sorry for my long absence. I was quite busy and still have lots to do, but i found some time for Terasology lately and i hope, i can do some more work.

While experimenting around with stackable chunks i created an advanced monitoring tool for Terasology. It is cappable of monitoring game related threads activity and chunks. It displays the running mean and decaying spikes from performance monitoring, too.

The advanced monitor resides in its own window. It can be enabled/disabled throught "settings" -> "advanced". There you can activate the option to show the monitor window at startup of Terasology. Currently, this is the only way to access the monitor. If you change these settings, they will only be applied after you restarted the game. Advanced monitoring is disabled by default.

All that stuff was developed while playing around with stackable chunks and i just commited it to the same branch. I've extracted the monitoring related code and put it into its own branch now:

https://github.com/mbrotz/Terasology/tree/monitoring

While advanced monitoring is activated, there might be a negative performance impact. When disabled, there should be no noticeable impact on performance, though.

Would be nice, to see this in the main branch! :) What do you guys think?

Panserbjoern


Bildschirmfoto vom 2013-04-17 22:12:16.png

Bildschirmfoto vom 2013-04-15 17:10:23.png

Bildschirmfoto vom 2013-04-17 22:12:44.png

Bildschirmfoto vom 2013-04-26 23:12:52.png

Bildschirmfoto vom 2013-04-17 22:13:44.png

Bildschirmfoto vom 2013-04-15 17:11:55.png
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
That looks freaking awesome! Thank you so much and welcome back :D

I'll try to take a look at the PR when I get home tonight!
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
If this is a replacement for the existing performance monitoring code, can you remove that at the same time?
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I got started really late tonight anyway, so don't have time to give it the attention it deserves right now before pulling :)

Btw, Panserbjoern - let me know if you want to be added to our YourKit license if want to play with the performance fun some more. begla has played with it a fair bit and seems to like it!
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Pulled! :)

Caught three references to package path changes in modules, but is built in the latest Jenkins develop build and everything.

It somehow freaked out my IntelliJ enough to where it still insists there's no "ChunkState" in my main workspace, flagging things as errors, yet it still compiles, runs, and even builds fully. Class is there and shows fine itself. Pulled a source zip from GitHub after pushing, new workspace, no errors. Weird. Didn't help just restarting.
 

Panserbjoern

Member
Contributor
Architecture
Awesome! :)

I have no idea, though, what causes these errors in IntelliJ... Its working perfectly fine in Eclipse. If there is anything i can do about that, let me know.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
The errors are just some weird display issue in my one IntelliJ workspace, don't worry about them -:)
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Yeah, IntelliJ occasionally gets confused since version 12 I've noticed.
 

Panserbjoern

Member
Contributor
Architecture
I've extended the chunk monitor to highlight tesselated chunks with a blue border. (See images above!) This allows you to see, which chunks are tesselated and sent to the graphics card.

Further, the threads monitor now monitors the threads responsible for chunk storage and growth simulation.

At least in my branch, it's not yet pulled...
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Your branch (or fork, to be precise) is up to you to manage. It has been pulled into develop in MovingBlocks.
 
Top