"Do not make your concurrency algorithm depend on Thread.yield()" and "The most common Java performance issues are: poor choice of algorithms or data structures; unnecessary object allocation; unnecessary object retention; using unbuffered I/O; poorly tuned JVMs; high lock contention; data structures resizing."