Matt, since they are considering a threadpooler, too, you might also want
to share your Object and Thread pooling techniques you've done in the
past. The design alone is worth considering it over other 
techniques. (Matthew has a pooling demo using Object.clone(), which is
also very fast and simple)

-Nick

On Fri, 29 Dec 2000, Matthew Dornquast wrote:

> Hi Guys,
> 
> I worked quite a bit with apache serialization code a several months back on
> various VM's speeding it up.  I think I have several observations that I
> hope you'll consider before using the code I just saw fly by on the list.
> 
> Basically, I'm a proponent of using externalizable for the session object.
> My tests show the objects are smaller and less resources are required to
> serialize/deserialize the object.
> 
> Use the strategy in class TestObject_D and you'll serialize objects in less
> time with less storage.
> 
> The simple proof of the idea is in the attached file SerialDemo1.java.
> 
> Here you'll find your basic contendors for the "I'm best way to serialize
> sessions" contest:
> 
> TestObject_A is your standard no frills serializable object.  What most
> people do.  What 3.1 did.
> TestObject_B is what happen's when you attempt to speed things up a bit.
> (Like the code I just saw on mailing list)
> TestObject_C is shows how String writing can be made better. (HUGE
> difference with JDK 1.1, less for 1.2/1.3)
> TestObject_D shows the power of fully managing the serialization process.
> 
> Test results on a couple of platforms:
> 
> Results of SerialDemo1.java when run on Pentium II 450mhz w/Linux & IBM'S
> JDK:
>   Test results for test.TestObject_A: Total time required- 4540, size of
> pickled object:99
>   Test results for test.TestObject_B: Total time required- 2743, size of
> pickled object:100
>   Test results for test.TestObject_C: Total time required- 2699, size of
> pickled object:101
>   Test results for test.TestObject_D: Total time required- 1755, size of
> pickled object:70
> 
> Results of SerialDemo1.java when run on 600mhz celery laptop in JBuilder's
> JDK 1.3:
> 
>   Test results for test.TestObject_A: Total time required- 1763, size of
> pickled object:99
>   Test results for test.TestObject_B: Total time required- 1512, size of
> pickled object:100
>   Test results for test.TestObject_C: Total time required- 1412, size of
> pickled object:101
>   Test results for test.TestObject_D: Total time required- 1012, size of
> pickled object:70
> 
> --------------
> 
> Now, if you're on board with the approach of  TestObject_D.  Take a look at
> a class I wrote last summer.  It's called SerializationDemo.java.  This is a
> full blown implementation/rewrite of the serialization process for sessions.
> 
>  (Sorry about the name, I didn't have time to change this class.)
> 
> It provide custom optimizations for all the popular data types that might
> occur in a session and can be easily extended for custom types.
> The class is called MattWay() (Again-- sorry about the name, this was for my
> own tests) and is intended to serve as an example of how to fully manage the
> serialization/deserialization of all the stuff a session might have in it.
> 
> Anyway, use this method, and you've got lean mean serialized objects that
> take up the least amount of space possible and have the lowest overhead to
> serialize/deserialize.
> 
> Warm regards,
> 
> -Matthew
> 
> PS> Test results for SerializationDemo.java on a 450 mhz pentinum using
> jdk1.3:
> 
> Test=test.ApacheWay, testTime=34238, testSize=5021
> Test=test.MattWay, testTime=12830, testSize=2351
> Serialization peformance summary=166.85893% faster
> Size          peformance summary=2670 bytes smaller
> 
> jdk 1.1:
> Test=test.ApacheWay, testTime=33992, testSize=5037
> Test=test.MattWay, testTime=11785, testSize=2336
> Serialization peformance summary=188.43446% faster
> Size          peformance summary=2701 bytes smaller
> 
> 

-- 
Nicolaus Bauman
Software Engineer
Simplexity Systems



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to