Just because your check engine light doesn't come on and stay lit doesn't mean that the engine is not throwing codes. The ECU has the capability to store intermittent codes in memory without throwing the light. A scanner is the best way to get codes but they are expensive as hell. Best thing to do is to go to a shop and have them run a diagnostic test. Make sure they get the car cold so they can see the problem happen with the scanner hooked up.