b5fa5ed3b7
OpenWireFormat instances are shared between OpenWire connections/sessions/consumers, preventing the clients to scale due to the synchronized marshal/unmarshal on it. It includes: - direct transport buffer pooling - groupId SimpleString pooling - clientId SimpleString pooling - reduced ActiveMQDestination[] and AtomicLong allocations on AMQSession:send - reduced ActiveMQDestination allocations - refactored shouldBlockProducer path of AMQPSession::send to reduce method size - exclusive OpenWireFormat per session and connection (in/out) to avoid contention - refactored trace log to favour inlining - changed lastSent volatile set into lazy set to avoid full barrier cost on x86 - stateless OpenWireMessageConverter - send's lock removal thanks to thread-safe NettyConnection |
||
---|---|---|
.. | ||
artemis-amqp-protocol | ||
artemis-hornetq-protocol | ||
artemis-hqclient-protocol | ||
artemis-mqtt-protocol | ||
artemis-openwire-protocol | ||
artemis-stomp-protocol | ||
pom.xml |