WarmRoast
WarmRoast is an easy-to-use CPU sampling tool for JVM applications, but particularly suited for Minecraft servers/clients.
- Adjustable sampling frequency.
- Supports loading MCP mappings for deobfuscating class and method names.
- Web-based — perform the profiling on a remote server and view the results in your browser.
- Collapse and expand nodes to see details.
- Easily view CPU usage per method at a glance.
- Hover to highlight all child methods as a group.
- See the percentage of CPU time for each method relative to its parent methods.
- Maintains style and function with use of "File -> Save As" (in tested browsers).
Download Latest Version: http://builds.enginehub.org/job/warmroast/last-successful/
Java 7 and above is required to use WarmRoast.
Screenshots
Usage
-
Note the path of your JDK.
-
Download WarmRoast.
-
Replace
PATH_TO_JDK
in the following commands with the path to your JDK and execute the program.
Note: The example command line below includes --thread "Server thread"
, which filters all threads but the main server thread. You can remove it to show all threads.
Modded/vanilla servers: If you are using a modded server, get a copy of MCP for your server's Minecraft version, copy the files from conf/ somewhere, and point WarmRoast to it with --mappings path/to/folder
. This helps readability a lot. Bukkit uses its own mapping, so a pure non-modded Bukkit server can't use MCP mappings.
Linux
java -Djava.library.path=PATH_TO_JDK/jre/bin -cp PATH_TO_JDK/lib/tools.jar:warmroast-1.0.0-SNAPSHOT.jar com.sk89q.warmroast.WarmRoast --thread "Server thread"
Windows
An example PATH_TO_JDK
would be C:\Program Files\Java\jdk1.7.0_45
java -Djava.library.path=PATH_TO_JDK/jre/bin -cp PATH_TO_JDK/lib/tools.jar;warmroast-1.0.0-SNAPSHOT.jar com.sk89q.warmroast.WarmRoast --thread "Server thread"
- The folder
PATH_TO_JDK/jre/bin
should contain "attach.dll" - The folder
PATH_TO_JDK/lib
should contain "tools.jar"
Parameters
Usage: warmroast [options]
Options:
--bind
The address to bind the HTTP server to
Default: 0.0.0.0
-h, --help
Default: false
--interval
The sample rate, in milliseconds
Default: 100
-m, --mappings
A directory with joined.srg and methods.csv
--name
The name of the VM to attach to
--pid
The PID of the VM to attach to
-p, --port
The port to bind the HTTP server to
Default: 23000
-t, --thread
Optionally specify a thread to log only
--timeout
The number of seconds before ceasing sampling (optional)
Hint: --thread "Server thread"
is useful for Minecraft servers.
License
The project is licensed under the GNU General Public License, version 3.