Performance questions

Java Urban Performance Legends

When is it important to set the default collection sizes?

  • What is the time cost of growing an ArrayList?

  • What is the time cost of growing/rehashing a HashMap with defaults from zero to 'n' entries?
    • initial capacity 16, load factor .75
    • growth algorithm if (size++ >= threshold) resize(2 * table.length)
    • size should always be power of 2
    • 0-1 million objects ? sec
    • 0-10 million objects ? sec
    • 0-20 million objects - it takes three times the current size to rehash since it doubles the internal array and copies the old array - with a 700M heap couldn't rehash 20 M objects without running out of memory
    • 0-20 million objects with 1 GB heap ? sec

Is synchronization expensive?

  • What is the time cost of un-contented synchronization?
  • What is the time cost of contended synchronization?

When would pooling of objects yield significant performance gains?

  • How much memory do empty objects require?
  • How much time do objects take to create?

How close is the size of serialized objects, collections, and primitives to the actual in-memory size?

  • Empty object
  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char
  • String
  • HashMap
Test environment:
  • Dual core, 2 GHz, 2 GB RAM
  • Java 1.6.0-b105 client mode
  • VM args -Xms700M -Xmx700M
  • Tests warmed up VM
  • Pre-created objects
  • Measured and subtracted iteration time

Comments

Popular posts from this blog

Sites, Newsletters, and Blogs

Oracle JDBC ReadTimeout QueryTimeout

Locks held on Oracle for hours after sessions abnormally terminated by node failure