Javolution 3.0 is an open source real time development library that allows your objects to be preallocated at start-up and transparently recycled during execution. No dynamic object creation, less heap memory useage, and no garbage collection (ever) result in a significant increase in application performance and responsiveness.
Also, noteworthy in the new version:
- Text concatenation/insertion/deletion in O(Log(n)) instead of O(n) for standard String/StringBuffer.
- FastMap, a map whose capacity increases smoothly with no resize/rehash ever.
- Enhanced Struct/Union classes for easier interoperability with C/C++ struct/union.
Javolution runs on all Java platforms (from CLDC 1.0 to J2EE 1.5) or natively when compiled with GCJ (Gnu Compiler for Java).
-
Javolution 3.0 real time framework released (7 messages)
- Posted by: Jean-Marie Dautelle
- Posted on: February 24 2005 23:38 EST
Threaded Messages (7)
- Memory Pools by David Tauzell on February 28 2005 14:12 EST
- Javolution 3.0 real time framework released by Brian Miller on February 28 2005 14:41 EST
- Javolution 3.0 real time framework released by Billy Newport on February 28 2005 16:04 EST
- NIO, Javolution 3.0 real time framework released by Brian Miller on February 28 2005 21:59 EST
- Stack by Cetin Karakus on March 01 2005 04:28 EST
- Stack by Brian Miller on March 01 2005 10:48 EST
- Stack allocation by Vitek Cvachoucek on March 01 2005 12:13 EST
-
Memory Pools[ Go to top ]
- Posted by: David Tauzell
- Posted on: February 28 2005 14:12 EST
- in response to Jean-Marie Dautelle
I haven't used this, nor am I sure I will. However, I do find it very interesting. There are applications where the overhead/unpredictablilty of garbage collection is a nuisance.
I wrote up some thoughts about memory pools a while back.
Web applications and web services could possible make good use of this as it would be fairly easy to determine when to release all of the memory in a pool; for example at the end of the doGet() method. -
Javolution 3.0 real time framework released[ Go to top ]
- Posted by: Brian Miller
- Posted on: February 28 2005 14:41 EST
- in response to Jean-Marie Dautelle
...allows your objects to be preallocated at start-up and transparently recycled during execution. No dynamic object creation, less heap memory useage, and no garbage collection (ever) result in a significant increase in application performance and responsiveness.
Generational scavenging has all of the benefits listed above. So doesn't generational scavenging obviate preallocation? -
Javolution 3.0 real time framework released[ Go to top ]
- Posted by: Billy Newport
- Posted on: February 28 2005 16:04 EST
- in response to Jean-Marie Dautelle
I agree with Brian, this used to be a big deal but on the latest JDKs, it's not so much as a win as it used to be. We're not doing it so much now in the application servers.
which is not to say, it's not needed, I'm sure there are still applications where it's required but it's a rare app these days.
Combined with NIO, the Struct stuff might be interesting for fast network comms, knocking serialization out of the picture.
Billy -
NIO, Javolution 3.0 real time framework released[ Go to top ]
- Posted by: Brian Miller
- Posted on: February 28 2005 21:59 EST
- in response to Billy Newport
Combined with NIO, the Struct stuff might be interesting for fast network comms, knocking serialization out of the picture.
Elsewhere I mentioned that if Fast Infoset were memory mapped, then SOAP might need less bandwidth than either IIOP or JRMP, yet be just as fast on the CPU while marshalling. With NIO, I think Fast Infoset might make legacy binary protocols obsolete. -
Stack[ Go to top ]
- Posted by: Cetin Karakus
- Posted on: March 01 2005 04:28 EST
- in response to Jean-Marie Dautelle
From the website
"Objects can be preallocated or allocated on the stack"!!!
How do you do that? JVM hook? -
Stack[ Go to top ]
- Posted by: Brian Miller
- Posted on: March 01 2005 10:48 EST
- in response to Cetin Karakus
From the website"Objects can be preallocated or allocated on the stack"!!!How do you do that?
The compiler could generate a local variable for each of the object's fields. But then how would its equals() method work? -
Stack allocation[ Go to top ]
- Posted by: Vitek Cvachoucek
- Posted on: March 01 2005 12:13 EST
- in response to Cetin Karakus
I may be wrong, but my quick investigation leads me to the
idea that this stack allocation is just based on java.lang.ThreadLocal holding object pool references.
Anyway Javalution seems to be VERY nice and interesting
library to look at.