This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Hash synchronization patch
- To: "Boehm, Hans" <hans_boehm at hp dot com>
- Subject: Re: Hash synchronization patch
- From: Jeff Sturm <jeff dot sturm at commerceone dot com>
- Date: Fri, 09 Feb 2001 18:59:43 -0500
- CC: "'java at gcc dot gnu dot org'" <java at gcc dot gnu dot org>
- Organization: Commerce One
- References: <140D21516EC2D3119EE700902787664401E3A89B@hplex1.hpl.hp.com>
"Boehm, Hans" wrote:
> Here's my current version of the hash synchronization patch. It passes my
> (pretty basic) tests on Linux/X86. It is against a recent tree, so it
> should hopefully apply to the current CVS tree.
I evaluated this patch on some of our application code. I was able to complete
the tests, with a nearly 50% performance improvement overall running on a
uniprocessor (results are number of HTTP transactions per second, concurrency is
the number of simultaneous threads):
standard hash sync
Concurrency | Requests / sec. | Requests / sec.
------------+-----------------+------------------
1 | 10.1 | 14.7 (+46%)
2 | 10.2 | 15.2 (+49%)
4 | 9.7 | 14.4 (+48%)
Heap usage was also slightly lower, and GC intervals around %30 shorter than
before.
However the application was not stable. On roughly 50% of my attempts the
program deadlocked on startup with a java.lang.IllegalMonitorStateException. It
was also prone to deadlock if any threads were running during a System.gc().
Here's one interesting message I haven't seen before:
Finalization cycle involving 89b14d0
Finalization cycle involving 81013c0
Finalization cycle involving 8101440
Finalization cycle involving 808af50
--
Jeff Sturm
jeff.sturm@commerceone.com