Skip to content

A code for comparison java primitives in comparison to theirs wrappers

mousator/benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project represents few small benchmark classes to see how primitive types compares to theirs wrappers.

I measured three times the creation of one million of int, long, empty custom class vs Object and custom class containing long primitive

From the quick benchmark I found out:

  1. measuring integers
  • wrapper class needs 4.5 (20/4) times more memory than int
  • the time overhead is about 12 times
  1. measuring long
  • wrapper class took 3.5 (28/8) more memory than long
  • the time overhead was comparable to int overhead, about 12 times
  • Long wrapper is comparable to creating custom class with long primitive field (quite obvious from the definition)
  1. measuring empty class vs empty object
  • not significant difference
  1. measuring methods
  • using Runtime class to get used memory is not precise enough
  • to get precise output I used object explorer library (http://code.google.com/p/memory-measurer/)
  • I used MacBookAir 1.7Ghz CPU, JDK1.6.0_31 64bit by [Michal Antolik]

##console output##

--- more precise using object explorer library
Measuring integers
	primitive Type: Average: 3906.27 KB of memory, took 0.00 seconds (memory size per unit: 4)
	wrapper Type: Average: 19531.27 KB of memory, took 0.05 seconds (memory size per unit: 20)
	memory wrapper overhead: 4
	consumed time wrapper overhead: 12
Measuring long numbers
	primitive Type: Average: 7812.52 KB of memory, took 0.01 seconds (memory size per unit: 8)
	wrapper Type: Average: 27343.77 KB of memory, took 0.06 seconds (memory size per unit: 28)
	memory wrapper overhead: 3
	consumed time wrapper overhead: 12
Measuring empty class instantiating
	Empty class: Average: 19531.27 KB of memory, took 0.04 seconds (memory size per unit: 20)
	Empty object: Average: 19531.27 KB of memory, took 0.05 seconds (memory size per unit: 20)
	Measuring emulated long class instantiating
	Emulated long class: Average: 27343.77 KB of memory, took 0.07 seconds (memory size per unit: 28)

 
--- less precise
Measuring integers
	primitive Type: Average: 4331.07 KB of memory, took 0.03 seconds (memory size per unit: 4)
	wrapper Type: Average: 25162.66 KB of memory, took 0.15 seconds (memory size per unit: 25)
	memory wrapper overhead: 5
	consumed time wrapper overhead: 4
Measuring long numbers
	primitive Type: Average: 8107.86 KB of memory, took 0.03 seconds (memory size per unit: 8)
	wrapper Type: Average: 27542.90 KB of memory, took 0.07 seconds (memory size per unit: 28)
	memory wrapper overhead: 3
	consumed time wrapper overhead: 2
Measuring empty class instantiating
	Empty class: Average: 25156.73 KB of memory, took 0.17 seconds (memory size per unit: 25)
	Empty object: Average: 25176.66 KB of memory, took 0.18 seconds (memory size per unit: 25)
	Measuring emulated long class instantiating
	Emulated long class: Average: 27376.90 KB of memory, took 0.12 seconds (memory size per unit: 28)

About

A code for comparison java primitives in comparison to theirs wrappers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages