1. While running loop, other code is blocked from executing
    • Use green threading
    • Have a separate thread or Break the loop into frames
  2. Nested loops lock up the main thread
    • Break nested loop in to individual loops
  3. Optimize mathematical operations mainly :- division, modulus and square root
    • Prefer multiplying instead of dividing
  4. Stop newing up objects
    • instead use object pooling
  5. Stop using reflection
    • if required cache the result
  6. Inlining code
  7. Manage resources safely by automatically disposing them
    • Use ‘using’ statement when instantiating the object and make sure the class resource implements IDisposable interface
  8. Optimizing applications using multi threading