We have converted a project from WCF to WebAPI (self hosted) and saw that a single 1MB file now takes 14 seconds to serve out. The problem seems to be the StreamContent class. Using ByteArrayContent instead gives the expected performance.
I've raised a question on StackOverflow that has all the details.
ASP.NET Web API 2 - StreamContent is extremely slow
I hope this is the right place to ask for someone to have a look at the issue.