Como não serializar um objeto

Durante uma investigação de problemas de performance em um cliente (aplicação em produção), me deparei com um método muito peculiar.

Sua assinatura é clara,

ser_assinatura

já a sua implementação, nem tanto.

ser_original

Fica claro que este método é problemático, pois faz alocações desnecessárias, não implementa Dispose e possui complexidade.

Essa é a versão refatorada do método, corrigindo os problemas descritos acima.

ser_refactor

No benchmark entre as versões do método observamos que a nova versão é 10x mais rápida,

ser_perf

e a pressão no GC e alocações são menores.

ser_gc

No final, a lição é sempre a mesma, mais importante do que saber fazer é saber o que não fazer.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s