We help IT Professionals succeed at work.

profiler for performance measurement- java multithreading

royjayd
royjayd asked
on
hi guys

I am using executor service in my code. Is there a profiler i can use to check what the threads are doing and how much time it takes to finish the task.

Right now i am using System.currentTimeMillis() to calculate the time taken but its inaccurate

long exportStartTime= System.currentTimeMillis();                  
 ExecutorService executor = Executors.newFixedThreadPool(3);                        
 final HSSFWorkbook runnableWb = wb;
 Runnable expTask = new Runnable(){        
 public void run(){        
 getExportDocumentObject(true, "Excel",buffer, mReq,runnableWb);
 }
long exportEndTime= System.currentTimeMillis();                  
System.out.println("Time taken for task (VERY INACCURATE):" + exportEndTime-exportStartTime);


Are there any open source profilers which can tell me which thread is doing what and how much time it takes complete the task?

thanks
Comment
Watch Question

CERTIFIED EXPERT

Commented:
Netbeans has got some very good profilers which work very well on profiling threads .

There is another profiler TPTP  which can be plugged into Eclipse. - Did not try this yet
I beleieve JDK 6 or 7 comes with some profilers by default.

I once saw profiling thru NetBeans at a Java conference . I suggest you try it first

Author

Commented:
I use eclipse, not sure I want to move to netbeans. Are there a which any commercial ones which are good?

Thx.
CERTIFIED EXPERT

Commented:
Jprofiler

Author

Commented:
Does jprofiler give thread by thread information? Like which thread is doing what?
CERTIFIED EXPERT
Commented:
Ofcourse , it does  . It's commercial , has much more features

Author

Commented:
heard lot of good things about Yourkit. Downloaded the trial. Fantastic tool.

Explore More ContentExplore courses, solutions, and other research materials related to this topic.