Como usar o BigDecimal afetaria o desempenho do aplicativo?

Eu quero usar BigDecimal para representar números de precisão arbitrária como preços e quantidades em um aplicativo de negociação de baixa latência com milhares de pedidos e relatórios de execução por segundo.

Eu não farei muitas operações matemáticas neles, então a questão não é sobre o desempenho do BigDecimal em si, mas sobre como grandes volumes de objetos BigDecimal afetariam o desempenho do aplicativo.

Minha preocupação é que a enorme quantidade de objetos BigDecimal de curta duração irá sobrecarregar um GC e resultar em pausas Stop-The-World maiores no coletor CMS - e isso é definitivamente o que eu gostaria de evitar.

Você pode por favor confirmar minhas preocupações e sugerir alternativas para usar o BigD? Além disso, se você acha que minhas preocupações estão erradas - explique por quê.

Atualizar:

Obrigado por todos que responderam. Agora estou convencido de que o uso do BigDecimal afetará a latência do meu aplicativo (embora eu ainda planeje medi-lo).

Por enquanto decidimos ficar com a solução "muito não-OOP" (mas sem precisão) - use doisints, um para mantissa e outro para expoente. O motivo por trás disso é que os primitivos são colocados na pilha, não no heap e, portanto, não estão sujeitos à coleta de lixo.

questionAnswers(7)

yourAnswerToTheQuestion