Class BufferRecycler


  • public final class BufferRecycler
    extends java.lang.Object
    Simple helper class to encapsulate details of basic buffer recycling scheme, which helps a lot (as per profiling) for smaller encoding cases.
    • Field Detail

      • _recyclerRef

        protected static final java.lang.ThreadLocal<java.lang.ref.SoftReference<BufferRecycler>> _recyclerRef
        This ThreadLocal contains a SoftReference to a BufferRecycler used to provide a low-cost buffer recycling for buffers we need for encoding, decoding.
      • _inputBuffer

        private byte[] _inputBuffer
      • _outputBuffer

        private byte[] _outputBuffer
      • _decodingBuffer

        private byte[] _decodingBuffer
      • _encodingBuffer

        private byte[] _encodingBuffer
      • _encodingHash

        private int[] _encodingHash
    • Constructor Detail

      • BufferRecycler

        public BufferRecycler()
    • Method Detail

      • instance

        public static BufferRecycler instance()
        Accessor to get thread-local recycler instance
      • allocEncodingBuffer

        public byte[] allocEncodingBuffer​(int minSize)
      • releaseEncodeBuffer

        public void releaseEncodeBuffer​(byte[] buffer)
      • allocOutputBuffer

        public byte[] allocOutputBuffer​(int minSize)
      • releaseOutputBuffer

        public void releaseOutputBuffer​(byte[] buffer)
      • allocEncodingHash

        public int[] allocEncodingHash​(int suggestedSize)
      • releaseEncodingHash

        public void releaseEncodingHash​(int[] buffer)
      • allocInputBuffer

        public byte[] allocInputBuffer​(int minSize)
      • releaseInputBuffer

        public void releaseInputBuffer​(byte[] buffer)
      • allocDecodeBuffer

        public byte[] allocDecodeBuffer​(int size)
      • releaseDecodeBuffer

        public void releaseDecodeBuffer​(byte[] buffer)