From: | Oliver Jowett <oliver(at)opencloud(dot)com> |
---|---|
To: | Felipe Schnack <felipes(at)ritterdosreis(dot)br> |
Cc: | Michael Paesold <mpaesold(at)gmx(dot)at>, pgsql-jdbc <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: synchronized code |
Date: | 2003-01-08 21:40:33 |
Message-ID: | 20030108214029.GB20810@opencloud.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
On Wed, Jan 08, 2003 at 07:11:46PM -0200, Felipe Schnack wrote:
> yuck! I think this implementation is kinda gross (can you send me this
> source? Just curious). Just imagine using preparedstatements, you will
> allocate a big internal buffer (to store the "PREPARE", etc command) and
> then just execute much smaller "EXECUTE" calls.
> Well, what we have to decide is what is better:
> - Create and destroy StringBuffer objects. This adds object creation
> overhead (as far as I know this isn't a problem) and gc overhead (I have
> no idea if it's costly)
> - Continue the way it is, or: use a unique StringBuffer, that is
> synchronized in every use (maybe it's better now, but historically a
> costly operation, AFAIK) and have its contents reset every time (IMHO a
> bad programming pratice - easily someone will forget to do it - and as
> pointed out by Michael, not very effective).
> My opinion is quite clear, isn't it?
I'm in the process of benchmarking this at the moment (we have similar
decisions to make in our own project). At this point, using a 1.4.0 VM on
Solaris 8, it looks like object allocation is faster than synchronization
with:
- 1 cpu + server VM + lock contention
- >1 cpu + server VM
- client VM
Synchronization is slightly (5%) faster for 1 cpu + server VM + no lock
contention.
Actual numbers to follow when I'm done.
-O
From | Date | Subject | |
---|---|---|---|
Next Message | Felipe Schnack | 2003-01-08 21:43:44 | PreparedStatement.close() |
Previous Message | Joseph Shraibman | 2003-01-08 21:35:15 | Re: [JDBC] ArrayIndexOutOfBoundsException in Encoding.decodeUTF8() |