The HotSpot Error

The HotSpot error that I’m currently having goes away if I don’t run the SynchronizedMethodToBlockInstrumentationStrategy. Without it, I was able to run a small GUI program. It was veeeery slow, though. Right now, the maximum event list size is relatively small: It can store only 512 events. Once the list is full, the slave initiates a push. I can enlarge that list, but I definitely have to make sure that master pull also works, i.e. that the master can pull at any time as well. That was the original design, but I haven’t checked lately if it still works.

I’ll also have to create a more compact representation. I have no idea how large the footprint of the list is right now, but it might be gigantic. What I really need to store in there is a unique thread ID, a unique object ID if it operates on some object (e.g. claiming its lock), and maybe some additional primitive data (e.g. timeouts). That should only take up a few bytes, and primitive data should suffice. That would allow for a faster data transfer and a more efficient garbage collection.

But before I can improve that, I’ll have to take another look at SynchronizedMethodToBlockInstrumentationStrategy X(

Update

Well, master pull doesn’t crash, but it seems to slow things down quite a bit. I’ll have to look into that too.

Share

About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in Concurrent Unit Testing. Bookmark the permalink.

Leave a Reply