Jump to content

Analyzing CPU Usage

Recommended Posts

This tutorial will cover how to analyze CPU usage of Java process by each thread. That is, you can analyze how much CPU each thread of a Java process is using.


First, you need to download this file:



Save that somewhere easily accessible.


Now, you must navigate to a JDK directory. Note: If the Java process (such as TRiBot) is using 32-bit Java, you must go to the directory containing a 32-bit JDK, and likewise for 64-bit.


You should be somewhere like C:\Program Files (x86)\Java\jdk1.8.0_45.


Now open the "bin" folder.


The program you'll want to run is called jconsole. But you need to boot it using a certain command to use the top threads plugin (the jar you downloaded earlier). To do this, make a new cmd/sh file with the following contents:

jconsole -pluginpath "C:\topthreads-1.1.jar"

You should replace C:\topthreads-1.1.jar with the path to wherever you saved topthreads-1.1.jar.


Run this file and it should make a window like this one appear:



You'll see some lines of text starting with "org.tribot.TRiBot." Those are the TRiBot processes. Open one of those up to analyze the CPU usage of TRiBot.


A window like this should appear:



You'll notice there is a tab called "Top threads." If there isn't, your command to open jconsole was wrong somehow. Maybe the path to the top threads jar was incorrect.


Now, click the "Top threads" tab. You'll see something like this:



Now you can analyze TRiBot's CPU usage thread-by-thread.

  • Like 2

Share this post

Link to post
Share on other sites

Help please i get this message:


jconsole' is not recognized as an internal or external command operable program or batch file


I made a batch file with this:


cd C:\Program Files (x86)\Java\jdk1.8.0_45\bin\

start jconsole.exe -pluginpath "C:\Users\x\Downloads\topthreads-1.1.jar"


Once I ran that it worked just fine. :)

Share this post

Link to post
Share on other sites

Some Important Information


Using the following command will automatically close the terminal window after JConsole has been opened:

start "" jconsole -pluginpath "C:\topthreads-1.1.jar"

And remember...

You should replace C:/topthreads-1.1.jar with the path to wherever you saved topthreads-1.1.jar.


Also, if you put topthreads-1.1.jar in the same directory as jconsole.exe, you won't need to specify a file path, like this:

start "" jconsole -pluginpath "topthreads-1.1.jar"
Edited by TacoManStan

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • This release will:

      Fix key event handling issue

      Fix other event handling issue

      Fix RSServer hook

      Update world hopper to have it use OCR, thanks to Todd

      Use proper disposal of old Graphics objects

      Reformat code

      Rearrange code

      Organize code imports

      Apply around 8000 automated code refactorings

      Make preparations for Java 9

      Fix 11 various bugs

      Add more reliable debugging support

      Fix mouseEntered/Exited event dispatching bug

      Fix minimap walking bug where it opens the map

      Fix broken hooks for today's game update
        • Thanks
        • Like
      • 55 replies
    • This update will:

      Fix GE inventory item positioning bug

      Fix broken object hooks
        • Like
      • 27 replies
    • This release will:

      Fix some ClosedChannelException bug

      Fix bug in RSObject#getAllTiles

      Add game tab support for "Kourend Favour"
        • Like
      • 15 replies
    • This release will:

      Fix Settings UI placement bug

      Fix game object location bug

      Fix small layout bug making the client shift up and down

      Fix client crashing bug where loading the client with a small display area will cause the client to crash

      Fix annoying Linux bug relating to painting events and peers

      Fix settings saving bug where settings are saved to disk more often than they should

      Fix RSInterface#isBeingDrawn bug affecting a limited amount of people

      Drop Java 1.7 bytecode version for 1.8

      Important: Since the downloadable RS client uses Java 7, it will no longer be compatible with Looking Glass. To make up for this, we will add support for using other clients such as RuneLite (at a later date).

      This change was necessary to allow us to use Java 8 syntax. It also paves the way for Java 9/10/11 support.
        • Like
      • 40 replies
    • This update will:

      Fix the RSMenuNode bug which also fixes the bug with bank opening

      Fix the incorrect object positions bug

      Fix and re-enable the LG Objects API Accelerator

      Fix the RSObject#getAllTiles bug
        • Like
      • 22 replies
  • Recently Browsing   0 members

    No registered users viewing this page.