Why does sql server perform better after restart
If you want to know why it's better after you restart, you need to track what was running when all those lines got squiggly. 

When you clear the plan cache, it doesn't help queries currently executing, and it doesn't guarantee that the next plan you cache will be good. I'd advise against doing that until you know exactly what's going on. 

Take a look at the part of your monitoring tool that tells you which queries were running when you had a problem. If your monitoring tool doesn't tell you that, it's time to find a new one. 

Next time it's happening, use a script like sp_WhoIsActive to catch currently executing queries.