Abstract4.1 Step 0: Defining the Problem4.2 Step 1: Determine the Source of the Problem4.3 Step 2: Determine Whether the Bottleneck Can Be Avoided4.4 Step 3: Design a Reproducible Experiment4.5 Step 4: Check Upstream4.6 Step 5: Algorithmic Improvement4.7 Step 6: Architectural Tuning4.8 Step 7: Testing4.9 Step 8: Performance Regression Testing