High CPU usage in Eclipse when idle

I was having the same problem today, and it turned out to be an indexing thread that was occupying the CPU. I had recently added quite a bit of files to a project and had forgotten about it. I realize it’s not likely that anyone else has this problem, but it might be useful to post how I investigated it.

I’m running Ubuntu 12.10 with STS based on eclipse Juno.

  1. Start eclipse from the command line and redirect output to a file so we can get a thread dump

  2. Allow it to settle for a bit, then get a listing of the cpu usage for each thread: ps -mo 'pid lwp stime time pcpu' -C java. Here’s a sample of the output that identified my cpu-hungry thread:

    PID   LWP STIME     TIME %CPU
    
    6974     - 07:42 00:15:51  133
    
       7067 07:42 00:09:49 **86.1**
    
  3. Convert the thread id (in my case 7067) to hex 0x1b9b (e.g. in the command line using: printf "0x%x\n" 7067)

  4. Do a thread dump of the java process using kill -3, as in: kill -3 6974. The output is saved in the file you redirected stdout when you started eclipse

  5. Open the file and look for the hex id of the thread:

    "Link Indexer Delayed Write-10" prio=10 tid=0x00007f66b801a800 nid=**0x1b9b** runnable [0x00007f66a9e46000]
    
    java.lang.Thread.State: RUNNABLE
    
    at com.ibm.etools.references.internal.bplustree.db.ExtentManager$WriteBack.r
    

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)