C Sharp Exponencial Moving Average
Se o desempenho deste código é crítico, então pode fazer sentido evitar alocações de heap para Candle s. Eu acho que a maneira mais razoável de fazer isso seria fazer da Candle uma estrutura. Embora os tipos de valores mutables sejam maus. Então eu também refino a Vela para ser imutável. Isso também significa que a implementação do NewestCandle teria que mudar, provavelmente em um par de campos duplos (ou, alternativamente, uma classe mutável e reinicializável separada). Não vejo nenhum outro problema potencial de desempenho em seu código. Mas quando se trata de desempenho, você deve sempre confiar no perfil, não na intuição (ou em alguém). Além disso, não gosto de alguns nomes de seus métodos. Especificamente: ValueUpdated. Os nomes dos métodos normalmente devem estar na forma de fazer algo, não aconteceu algo. Então eu acho que um nome melhor seria UpdateValue. Adicionar. Modificar. Estas são as duas operações fundamentais do seu MovingAverage e eu acho que esses nomes não expressam ...