Devemos mudar para usar E / S assíncrona por padrão?

Com as vantagens da E / S assíncrona e agora sendo muito fácil de codificar e compor (usando os métodos Await e TAP), estou pensando, se devemos usar async por padrão e apenas ajustar para desempenho usando a sincronização quando necessário.

E / S assíncrona libera o segmento de chamada e permite fazer outra coisa enquanto aguarda o resultado. Por outro lado, a E / S assíncrona é um pouco mais lenta que a sincronização.

Para impor UIs responsivas, os designers do WinRT acharam aceitável oferecer métodos somente assíncronos.

O arquivo de E / S do Windows AFAIK internamente é assíncrono. Olhando para isto ingenuamente, não está claro para mim, por que a i / O de arquivos assíncronos no .NET deve ser mais lenta que a sincronização.

Eu geralmente prefiro simplicidade e robustez e só sintonizo para o desempenho quando necessário. No passado, usamos a sincronização por padrão, com a exceção de chamar alguns serviços e onde as plataformas, como o telefone, eram obrigatórias. Nós raramente sintonizamos usando async.