linux-BR.org

Notícias de software livre e tecnologias

Observe que as referências de objeto ocupam 4 bytes de espaço em nosso objeto, não 8 como ponteiros nativos: em plataformas de 64 bits, o ponto de acesso pode, em certas condições, comprimir as referências.Claro, há algumas pequenas imperfeições aqui e ali, mas, em geral, o C2, o compilador de otimização de máquina virtual de hotspot, fez um bom trabalho.Infelizmente, essa comparação não foi muito favorável em relação ao C#: ele realizou consistentemente cerca de 4-6 × mais lento, quatro a seis vezes, do que a mesma estrutura de dados em Java.Mais importante, porém, a inicialização do objeto é tão simples quanto recebe: depois de preencher o cabeçalho do objeto, os campos são inicializados com lojas de memória simples.Isso, e o fato de ser uma chamada de função, certamente introduz algum custo adicional, mas não o suficiente para explicar a diferença observada.

Fonte: https://fanael.github.io/dotnet-object-init-slow.html