OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Eclipse: the new Emacs? (and the XML story)

[ Lists Home | Date Index | Thread Index ]

Bob Foster wrote:

>K. Ari Krupnikov wrote:
> > David Megginson <dmeggin@attglobal.net> writes:
> >
> >>Java objects have an awful lot of built-in
> >>memory overhead just for the java.lang.Object base class
> >
> > Do you know how much memory you actually use for a "new Object()"?
>
>Yes, a pinch of actual fact would make a nice spice for this latest 
>round of the "objects cost too much" permathread.
>
>  
>
In older JVMs (1.1.8) even a simple Object would take about 32 bytes. 
Now that's down to 8 bytes, for the Sun JVM 1.4.2 on Linux:

Base Object starting memory usage 884792, ending usage 2484792
Base Object size in bytes: 8
Base Object construction time in ms. for 200000 instances: 59
String (4 characters) starting memory usage 884952, ending usage 10484952
String (4 characters) size in bytes: 48
String (4 characters) construction time in ms. for 200000 instances: 851
Integer starting memory usage 884952, ending usage 4084952
Integer size in bytes: 16
Integer construction time in ms. for 200000 instances: 135
byte Array (0 length) starting memory usage 884952, ending usage 4084952
byte Array (0 length) size in bytes: 16
byte Array (0 length) construction time in ms. for 200000 instances: 128
byte Array (8 length) starting memory usage 884952, ending usage 5684952
byte Array (8 length) size in bytes: 24
byte Array (8 length) construction time in ms. for 200000 instances: 211
Reference Array (8 length) starting memory usage 884952, ending usage 
10484952
Reference Array (8 length) size in bytes: 48
Reference Array (8 length) construction time in ms. for 200000 
instances: 628

This is from a modified version of the code I used for a JavaWorld 
article a few years back (the article now mostly obsolete, so I won't 
link it). Don't know why Strings are so slow and so large (figure 24 
bytes for the char[4], but that still leaves another 24 bytes just for 
the String data), but it would certainly account for a lot of the bloat 
in document models. In general, document models take about 4-8X the 
document size in bytes (with the low end for documents that are mostly 
text): http://www.sosnoski.com/opensrc/xmlbench/results.html#size These 
results are a couple of years old (and from a 1.3.X JVM), but still 
fairly accurate from what I've seen.

  - Dennis

-- 
Dennis M. Sosnoski
Enterprise Java, XML, and Web Services
Training and Consulting
http://www.sosnoski.com
Redmond, WA  425.885.7197






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS