DIRTY MAF
Clean your Mass Airflow Sensor with some MAF sensor cleaner or contact cleaner
dirty air filter
Inspect your air filter, and if dirty or older than 1 year, replace it
failed barometric sensor
The barometric sensor can fail and send inaccurate info to the ECU making the car perform bad.
Try disconnecting it and see if the issue still persist.
If you see that it's this sensor's fault, replace it.
OLd coils-plugs-wires
If your coils, wires or spark plugs are older than 4 or 5 years, It's a good Idea to replace them.
More power + better mpg
fuel pump or fuel pump harness
The fuel pump can be clogged or can overheat causing this issue.
Check if you had a recall and get it replaced for free.
If no, have it inspected and replace if needed.
low compression
If non of the above helps, do a compression test and if you have less than 5 BAR consider rebuilding your engine.