Giter Club home page Giter Club logo

warmroast's Introduction

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

Sample output

Usage

  1. Note the path of your JDK.

  2. Download WarmRoast.

  3. 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.

warmroast's People

Contributors

sk89q avatar

Watchers

Martin Gafert avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.