It probably won't make your entire application 2x slower. It will sometimes issue 2 http requests when you might expect one. But your app is probably more than just HTTP requests, so you'd have to measure the performance of your app as a whole.
The conditions for the browser issuing a preflight are:
- The HTTP method is not a simple method (
GET, HEAD, POST), or
- There are HTTP headers other than
Accept, Accept-Language, Content-Language or Content-Type (but only if the Content-Type value is not application/x-www-form-urlencoded, multipart/form-data, or text/plain)
If your HTTP request doesn't meet those criteria, it will not issue a preflight. The preflight is a small OPTIONS request without a body, so it should be fast (depending on your connection speed). And once you issue a preflight, its results are cached for a period of time (the cache time varies by browser. Chrome/Safari do 5 minutes, FF does 24 hours).
If you are interested in tips for reducing preflights, see this answer: How to apply CORS preflight cache to an entire domain