在JMS性能方面,我已经读到出于性能原因应避免使用ObjectMessage。
ObjectMessage在性能方面有多糟糕?
我应该序列化为BytesMessage并手动反序列化吗?
最佳答案
ObjectMessage
的性能开销是由于java.io
序列化过程引起的。如果您自己这样做并使用ByteMessage
,那么您将做JMS自己做的事情,那么您的状况将不会更好。
如果需要通过JMS发送Java对象,则应使用ObjectMessage
,这是API提供的。这允许容器进行一些优化,例如JBoss将使用其自己的专有序列化协议,该协议比标准java.io
协议要快得多。