[muscle] Re: Assorted java client updates
- From: Jeremy Friesner <jaf@xxxxxxxxxxxx>
- To: Lior Okman <lior.okman@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 28 Dec 2006 10:41:04 -0800
Hi Lior,
Thanks for the patch! It all looks good, the only thing I changed was the
reimplementation of Queue.removeAllElements(). I changed it to this:
public void removeAllElements()
{
// allow garbage collection
for (int i=0; i<_elementCount; i++) _queue[internalizeIndex(i)] = null;
_elementCount = 0;
_headIndex = -1;
_tailIndex = -1;
}
The implementation you had was quicker up-front, but it meant that the _queue
array would have to be re-grown every time after it was cleared, which means
code with this usage pattern would be inefficient:
Queue q = new Queue()
while(true)
{
for (int i=0; i<10000; i++) q.appendElement(i);
q.removeAllElements();
}
Anyway, your changes will be included in the next muscle release.
Thanks again,
Jeremy
On Thursday 28 December 2006 10:21, Lior Okman wrote:
> Hi Jeremy,
>
> The attached patch does the following:
>
> 1. Use a StringBuffer in toString() methods, instead of concatenating
> strings directly.
> 2. Use the faster ByteBuffer operations to fill in arrays, instead of
> looping over the arrays and manually setting the values.
> 3. Use List instead of Vector and HashMap instead of HashTable. This is
> to lose the extra unneeded synchronization point that exists in these
> old and deprecated (as of Java 1.2) classes. Since ByteBuffer assumes at
> least JDK 1.4, no need to use older API.
> 4. Use Iterator instead of Enumeration - same reason as item 3.
> 5. Changed the implementation of Queue.removeAllElements() to a more
> efficient implementation.
> 6. Modified the ThreadPool to use a ThreadGroup and provide thread names
> - this makes the class more profiler friendly.
>
>
> Regards,
>
> Lior
- References:
- [muscle] Assorted java client updates
- From: Lior Okman
Other related posts:
- » [muscle] Assorted java client updates
- » [muscle] Re: Assorted java client updates
- [muscle] Assorted java client updates
- From: Lior Okman