Analyzing Memory Usage: Java vs C++ Negligible?
        Posted  
        
            by 
                Anthony
            
        on Programmers
        
        See other posts from Programmers
        
            or by Anthony
        
        
        
        Published on 2012-08-18T10:19:51Z
        Indexed on 
            2012/09/10
            15:49 UTC
        
        
        Read the original article
        Hit count: 370
        
How does the memory usage of an integer object written in Java compare\contrast with the memory usage of a integer object written in C++? Is the difference negligible? No difference? A big difference? I'm guessing it's the same because an int is an int regardless of the language (?)
The reason why I asked this is because I was reading about the importance of knowing when a program's memory requirements will prevent the programmer from solving a given problem.
What fascinated me is the amount of memory required for creating a single Java object. Take for example, an integer object. Correct me if I'm wrong but a Java integer object requires 24 bytes of memory:
- 4 bytes for its int instance variable
 - 16 bytes of overhead (reference to the object's class, garbage collection info & synchronization info)
 - 4 bytes of padding
 
As another example, a Java array (which is implemented as an object) requires 48+bytes:
- 24 bytes of header info
 - 16 bytes of object overhead
 - 4 bytes for length
 - 4 bytes for padding
 - plus the memory needed to store the values
 
How do these memory usages compare with the same code written in C++?
I used to be oblivious about the memory usage of the C++ and Java programs I wrote, but now that I'm beginning to learn about algorithms, I'm having a greater appreciation for the computer's resources.
© Programmers or respective owner