Warmroast: Difference between revisions

From GT New Horizons
Content added Content deleted
m (changed the size of the window)
No edit summary
Line 1: Line 1:
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.
Warmroast is a Java utility written by sk89q (the author of World Edit and World Guard). It allows you audit the Java Virtual Machine you want to target (not always Minecraft) and observe what portions of code take the most CPU time (are the most heavy resource wise). 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<nowiki/>to see how to properly set it up. Here is a corrected version of warmroast made by boubou_19 to fix some small bugs: [https://github.com/boubou19/warmroast/releases/tag/1.0.1 warmroast 1.0.1]
Warmroast a command line utility that will open a hosted server 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<nowiki/>to see how to properly set it up. Here is a corrected version of Warmroast made by boubou_19 to fix some small bugs: [https://github.com/boubou19/warmroast/releases/tag/1.0.1 Warmroast 1.0.1]
[[File:Exemple of lag monitoring with warmroast.png|center|thumb|1499x1499px|Exemple of lag monitoring with warmroast]]
[[File:Exemple of lag monitoring with warmroast.png|center|thumb|1499x1499px|Exemple of lag monitoring with warmroast]]
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.
In the above picture, we can see that 1.7% of the time, the CPU is expending its computational power on emitting energy to GT cable networks. We can also see on the node below that 1.22% of the time, this is happening 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. However, a broad way to judge the extent to which a server is "lagging" is comparing the amount of time taken to tick, and sleep.


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.
This tool only is meaningful in seeing "recurrent" lag. The longer the sampling lasts, lesser will be your chances to see the lag spikes. If you want to track down lag spikes, you need to make many short samplings and hope for the lag spike to occur during the sampling period. This tool also displays parts of the code that may be inefficient, programmatically wise, alongside the instances of (tile) entities that are causing the issues. This is why it's better to combine Warmroast with a tool like Opis, as it allows you more precision in determining the real issue.


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.
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 developers as they can directly look into the problematic functions, allowing the resolution of these errors to become much easier.

Revision as of 19:53, 15 November 2021

Warmroast is a Java utility written by sk89q (the author of World Edit and World Guard). It allows you audit the Java Virtual Machine you want to target (not always Minecraft) and observe what portions of code take the most CPU time (are the most heavy resource wise). To use it, be sure to have a Java 8 development kit on your PC/server.

Warmroast a command line utility that will open a hosted server 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/warmroastto 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

Exemple of lag monitoring with warmroast

In the above picture, we can see that 1.7% of the time, the CPU is expending its computational power on emitting energy to GT cable networks. We can also see on the node below that 1.22% of the time, this is happening 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. However, a broad way to judge the extent to which a server is "lagging" is comparing the amount of time taken to tick, and sleep.

This tool only is meaningful in seeing "recurrent" lag. The longer the sampling lasts, lesser will be your chances to see the lag spikes. If you want to track down lag spikes, you need to make many short samplings and hope for the lag spike to occur during the sampling period. This tool also displays parts of the code that may be inefficient, programmatically wise, alongside the instances of (tile) entities that are causing the issues. This is why it's better to combine Warmroast with a tool like Opis, as it allows you more precision in determining the real issue.

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 developers as they can directly look into the problematic functions, allowing the resolution of these errors to become much easier.