Tôi muốn sử dụng BigDecimal để biểu thị các số chính xác tùy ý như giá cả và số tiền trong ứng dụng giao dịch có độ trễ thấp với hàng nghìn đơn đặt hàng và báo cáo thực hiện mỗi giây.Cách sử dụng BigDecimal sẽ ảnh hưởng đến hiệu suất của ứng dụng?
Tôi sẽ không thực hiện nhiều thao tác toán học, vì vậy câu hỏi không phải là về hiệu suất của BigDecimal, mà là khối lượng lớn các đối tượng BigDecimal sẽ ảnh hưởng đến hiệu năng của ứng dụng.
Mối quan tâm của tôi là số lượng lớn các đối tượng BigDecimal tồn tại ngắn sẽ gây căng thẳng cho GC và dẫn đến Dừng tạm dừng lớn hơn trong bộ thu CMS - và điều này chắc chắn là điều tôi muốn tránh.
Bạn có thể vui lòng xác nhận mối quan tâm của tôi và đề xuất các lựa chọn thay thế để sử dụng BigD không? Ngoài ra, nếu bạn nghĩ rằng mối quan tâm của tôi là sai - hãy giải thích lý do.
Cập nhật:
Cảm ơn tất cả những người đã trả lời. Bây giờ tôi tin rằng việc sử dụng BigDecimal sẽ làm giảm độ trễ của ứng dụng của tôi (mặc dù tôi vẫn có kế hoạch đo lường nó).
Hiện tại, chúng tôi quyết định gắn bó với giải pháp "rất không OOP" (nhưng không có độ chính xác) - sử dụng hai int
s, một cho chú giải và một cho số mũ. Lý do đằng sau điều này là nguyên thủy được đặt trên ngăn xếp, không đống, và do đó không phải chịu thu gom rác thải.
Nếu BidD không dành cho tôi, thì sao? Tôi không sử dụng gấp đôi (vì nó mang lại rất nhiều vấn đề mới với các điểm nổi -numbers mà tôi hoạt động với số thập phân tự nhiên). – vtrubnikov
+1 để nêu rõ điểm mấu chốt về cạnh tranh về hiệu suất. Như trong trò đùa về con hổ và giày chạy bộ, số tuyệt đối hiếm khi quan trọng hơn, tốt hơn/tệ hơn là số đếm. – soru
@ valery_la99 - Tôi đã thêm vào câu trả lời của mình –