Warmroast

Warmroast is a java utility written by sk89q (the author of World Edit and World Guard). It lets you audit the java virtual machine you want to target (not necessarily MineCraft) and see what portions of code takes most of the cpu time. To use it, be sure to have a java 8 development kit on your PC/server.

It's a command line utility that will open a website on a specific port listing the portions of code executed between the start of the utility, and the moment you opened the webpage. See: https://github.com/boubou19/warmroast to see how to properly set it up. Here is a corrected version of warmroast made by boubou_19 to fix some small bugs: warmroast 1.0.1 On the picture above, we can see that 1.7% of the time, the CPU is spending its computation on emitting energy to GT cable networks. We can also see on the node below that 1.22% of the time, the CPU is spending its computation on world accelerator logic. Beware to not interpret the report too quickly: values displayed here are relative time based on the report duration. You may see portions of code highlighted as heavy code on very small duration, but not see them in on large durations. The picture above was made after 5 hours of sampling, so values are kinda stable and it's safe to assume that world accelerators are lagging a bit the server.

This tool is useful only to see "recurrent" lag. The longer the sampling lasts, lesser will be your chances to see the lag spikes. If you want to trackdown lag spikes, you need to make short samplings and hope for the lag spike to occur during the sampling duration. This tool also give parts of the code being laggy, not what instance of entity/tile entity causing the issues. This is why it's better to combine warmroast with a tool like opis, as it tells you what particular stuff is being laggy.

If you are experiencing some kind of TPS reduction but you don't know what you are looking at, please ask in our discord channel with a picture of your report, or send the html page directly. (to get the page, right click, and save as) This kind of report is also very valuable for the developpers as they can directly look into the incrimined functions, orienting their solving of the issue.