From: Kris L. <kl...@im...> - 2004-08-30 06:54:50
|
Hi Rickard, >.. unless you use OOS.writeUnshared() which will not keep references. Good point. Had not tried that new 1.4+ feature. I put it in and found it does improve throughput by another 7% to 9%. There is a noticable reduction of CPU usage also. Don't have good numbers but it is around 10% or more. I implemented this change by replacing line #309 from: oos.writeObject(txns[curTxn]); to: oos.writeUnshared(txns[curTxn]); And removing Lines #315 to 317. The only drawback to this change is that it requires JRE 1.4+. For me, it is just fine. Don't know if that is acceptable for JDBM 0.20+ release. Thanks, Kris Rickard Öberg wrote: > Kris Leite wrote: > >> >Not creating new streams all the time should improve it even more. >> >> Hmm, if you are implying that using the "reset()" of the >> ObjectOutputStream. >> Then there was a slight improvement by replacing line #317: >> oos = new ObjectOutputStream(fos); >> with: >> oos.reset(); >> >> If you are suggesting removing it completely, that has a side effect >> of GC not working since OOS/OIS keep references to the stored >> object until the stream is closed or reset. > > > .. unless you use OOS.writeUnshared() which will not keep references. > > /Rickard > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click > _______________________________________________ > Jdbm-general mailing list > Jdb...@li... > https://lists.sourceforge.net/lists/listinfo/jdbm-general > > . > |