title: How do I profile the EDT in Swing?
body: <p>I have an application that I'm building in Swing.  It has a scrollable and zoomable chart component which I can pan and zoom in.  The whole thing is smooth except that sometimes the UI will pause for about 750 ms and I don't know why.  This doesn't always happen - but sometimes something happens in the application and it starts pausing like this once every 6-8 seconds.</p>
  
  <p>It seems pretty clear that there's some event being placed on the EDT that's taking 750 ms or so to run, which shouldn't be happening.</p>
  
  <p>How do I profile the EDT specifically like this?  What I would really like to do is get something that will output to a log or System.out every time an event runs on the EDT with the total amount of time the event took.  Is there a way to do this?</p>
  
  <p>Or is there some tool that will do this for me and give me a log of everything that runs on the EDT and how long it takes?</p>
  
  <p>I'd like to go through this log, look at everything that's taking a long time, and find the problem.</p>