Gargalo de Desempenho do RPC de Streaming CoreWCF: Análise Pós-mortem de Falha no Stack Overflow

2025-05-08
Gargalo de Desempenho do RPC de Streaming CoreWCF: Análise Pós-mortem de Falha no Stack Overflow

O autor tentou usar o CoreWCF para RPC de streaming entre o .NET Framework e o .NET 8 para testar a taxa de transferência de números aleatórios. No entanto, após postar uma pergunta no Stack Overflow, ela foi fechada sem resposta. O problema é que o serviço CoreWCF continua consumindo CPU significativa e escrevendo no stream mesmo depois que o cliente se desconecta. O autor suspeita de um mal-entendido sobre como os streams do WCF devem funcionar, sugerindo que os streams do WCF podem não ser adequados para lidar com streams de comprimento desconhecido. O artigo explora os desafios de usar streaming do WCF para RPC de alta taxa de transferência e considera alternativas, como usar solicitações de mensagens únicas ou modo de sessão, para melhorar o desempenho e a confiabilidade.

Leia mais
Desenvolvimento

Span<T> supera memcmp: ganhos de desempenho massivos em comparações de array de bytes .NET

2025-03-30
Span<T> supera memcmp: ganhos de desempenho massivos em comparações de array de bytes .NET

Esta publicação compara várias maneiras de comparar arrays de bytes no .NET, incluindo `memcmp`, loop, `Enumerable.SequenceEqual` e `Span.SequenceEqual`. Os resultados mostram que `Span.SequenceEqual` oferece o melhor desempenho no .NET 8 e posterior, superando significativamente `memcmp` e o loop tradicional, mesmo no .NET Framework. Para arrays pequenos, o loop é o mais rápido, mas a vantagem de `Span.SequenceEqual` aumenta drasticamente com o tamanho do array. O autor recomenda o uso de `IEnumerable.SequenceEqual` no .NET 8+ e `Span.SequenceEqual` no .NET Framework, evitando `memcmp` e implementações personalizadas.

Leia mais