Performance Issues with Exoflame, Hopperhock, Mana Spreaders, Elven Portal
Luke616 opened this issue ยท 5 comments
Hello,
I've been running a server for a modpack with Botania in it and have been periodically performing CPU time profiles using the mod LagGoggles. I've noticed certain aspects of Botania setups being consistently expensive, and was wondering if there was any optimization you could do. Blocks which are frequently taking up a disproportionately high amount of CPU time include the Exoflame, Hopperhock, Mana Spreaders, and the Elven Portal block.
Here are some images to demonstrate what I mean:
This is the absolute worst I've ever seen - usually exoflames cost around ~500us/tick after they are set up for a while which is still insanely high but this one block was singlehandedly responsible for around ~70% of the server lag that day.
Here is an expensive Elven Portal, pretty much all of the elven portals I've seen set up have a disproportionately high CPU cost.
Hoping you could shed some light on this, I've noticed that some mana spreaders cost a high amount of CPU time but others work just fine. Not sure what is happening that causes some spreaders to cost ~5 us/t and others to cost ~500us/t, this is by far the most inconsistent but it seems every botania setup I've come across has one or two extra laggy spreaders.
I understand that its likely that there is little you could do about this in the short-term, but I was hoping that bringing these performance issues to your attention might give you some indication as to where the mod could be better optimized in the future.
Thanks!
-Luke616
Version Information
Forge version: 14.23.5.2808
Botania version: r1.10-359
Further Information
Link to crash log: n/a
Steps to reproduce:
- Download Botania and a profiler of your choice
- Make various botania setups
- Profile CPU load to see what processes are using a lot of memory
While LagGoggles is a fantastic tool for identifying issues, it's not really a substitute to a providing a profiler report. Could you provide one?
Either a VisualVM profiler snapshot (can be created with Player's Sampler mod or with VisualVM itself), or a report link from the spark profiler would be fine.
For Spark, /spark start --timeout 60 --include-line-numbers
, optionally with a lower interval, would be a nice starting point. For Sampler, /sampler start
, then after a while /sampler stop
and /sampler export
, then providing the report here.
Oh, thanks for showing me these tools - been mourning the fact that I couldn't profile with VisualVM itself since my server is offsite and did not realize there were tools to generate snapshots. I'll get you a proper profile report when I get a chance
Alright, here's a snapshot. Hoping you can get some good info out of it, I did a profile using laggoggles right before and botania stuff really wasn't lagging as hard as it has in the past but there are certainly some hits.
sampler-snapshot.zip
This screenshot is from the laggoggles profile I took immediately before using sampler. I sampled for roughly 30 seconds. The 3 TileSpecialFlowers you see at the top all pointed to Pure Dasies in different people's homes, each were already surrounded by 8 livingwood/livingstone which had yet to be removed. The TileFloatingSpecialFlowers were all exoflames, I've seen them reach much higher CPU time than in the profile above but hopefully this helps somewhat. Next time I see an exoflame flip out like in the screenshot from the main post I'll be ready with sampler installed to catch it for you though!
Thanks again for looking in to this!
EDIT: Did some more messing around with LagGoggles today, can confirm that removing the livingwood/stone from around a pure daisy and having the 8 surrounding blocks be air cuts the CPU time usage of the flower from ~150us/t to ~3us/t. I also have a screenshot of another mana spreader setup which started ticking extra hard, not sure what about this particular setup is doing it but it anecdotally seems that all the extra-expensive spreaders I come across are a part of endoflame setups.
This issue is stale because it has been open for a while with no activity. Remove stale label or comment or this will be closed soon.