netty5/buffer/src/main/java/io/netty/buffer
Francesco Nigro 7f86f90646 Improve predictability of writeUtf8/writeAscii performance (#10368)
Motivation:

writeUtf8 can suffer from inlining issues and/or megamorphic call-sites on the hot path due to ByteBuf hierarchy

Modifications:

Duplicate and specialize the code paths to reduce the need of polymorphic calls

Result:

Performance are more stable in user code
2020-09-09 16:15:22 +02:00
..
search Efficient BytBuf search algorithms (#9914) (#9955) 2020-04-15 10:26:53 +02:00
AbstractByteBuf.java Improve predictability of writeUtf8/writeAscii performance (#10368) 2020-09-09 16:15:22 +02:00
AbstractByteBufAllocator.java Prefer direct io buffers if direct buffers pooled (#9167) 2019-05-22 07:33:06 +02:00
AbstractDerivedByteBuf.java Use ByteBuf#isAccessible() in more places (#10506) 2020-08-28 09:22:34 +02:00
AbstractPooledDerivedByteBuf.java Use ByteBuf#isAccessible() in more places (#10506) 2020-08-28 09:22:34 +02:00
AbstractReferenceCountedByteBuf.java Centralize internal reference counting logic (#8614) 2019-04-09 16:23:15 +02:00
AbstractUnpooledSlicedByteBuf.java Add tests to ensure an IllegalReferenceCountException is thrown if set/writeCharSequence is called on a released buffer 2017-07-21 07:39:32 +02:00
AbstractUnsafeSwappedByteBuf.java Don't check accessible in the #capacity method (#7830) 2018-04-03 21:35:02 +02:00
AdvancedLeakAwareByteBuf.java Motivation: Resource Leak Detector (RLD) tries to helpfully indicate where an object was last accessed and report the accesses in the case the object was not cleaned up. It handles lightly used objects well, but drops all but the last few accesses. 2017-10-19 12:21:21 -07:00
AdvancedLeakAwareCompositeByteBuf.java CompositeByteBuf optimizations and new addFlattenedComponents method (#8939) 2019-04-08 20:55:19 +02:00
ByteBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
ByteBufAllocator.java MessageToByteEncoder always starts with ByteBuf that use initalCapacity == 0 2014-06-24 13:55:21 +09:00
ByteBufAllocatorMetric.java Expose ByteBufAllocator metric in a more general way 2017-03-08 20:07:58 +01:00
ByteBufAllocatorMetricProvider.java Expose ByteBufAllocator metric in a more general way 2017-03-08 20:07:58 +01:00
ByteBufHolder.java Make retained derived buffers recyclable 2016-05-17 11:16:13 +02:00
ByteBufInputStream.java Correctly take length of ByteBufInputStream into account for readLine… (#9310) 2019-07-01 20:55:47 +02:00
ByteBufOutputStream.java Lazily construct contained DataOutputStream in ByteBufOutputStream (#10507) 2020-08-28 09:23:12 +02:00
ByteBufProcessor.java migrate java8: use lambda and method reference (#8781) 2019-01-29 14:06:05 +01:00
ByteBufUtil.java Improve predictability of writeUtf8/writeAscii performance (#10368) 2020-09-09 16:15:22 +02:00
CompositeByteBuf.java Include more details if we throw an IllegalArgumentException because of overflow (#10330) 2020-06-02 10:08:06 +02:00
DefaultByteBufHolder.java Use ByteBuf#isAccessible() in more places (#10506) 2020-08-28 09:22:34 +02:00
DuplicatedByteBuf.java Remove support for marking reader and writerIndex in ByteBuf to reduce overhead and complexity. (#8636) 2018-12-11 14:00:49 +01:00
EmptyByteBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
FixedCompositeByteBuf.java FixedCompositeByteBuf.isDirect() may return wrong value when constructed with empty array (#10005) 2020-02-08 17:05:44 +01:00
HeapByteBufUtil.java Add first-class Little Endian support to ByteBuf and descendants 2015-11-26 20:30:24 +01:00
package-info.java Synchronized between 4.1 and master 2014-04-25 00:38:02 +09:00
PoolArena.java Reduce the scope of synchronized block in PoolArena (#10410) 2020-07-16 19:41:02 +02:00
PoolArenaMetric.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PoolChunk.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PoolChunkList.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PoolChunkListMetric.java fix the typos 2017-04-20 04:56:09 +02:00
PoolChunkMetric.java Expose metrics for PooledByteBufAllocator 2015-05-20 21:06:17 +02:00
PooledByteBuf.java Fix BufferOverflowException during non-Unsafe PooledDirectByteBuf resize (#9912) 2020-01-11 06:05:32 +01:00
PooledByteBufAllocator.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PooledByteBufAllocatorMetric.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PooledDirectByteBuf.java Use lambdas whenever possible (#9979) 2020-01-30 09:28:24 +01:00
PooledDuplicatedByteBuf.java Use lambdas whenever possible (#9979) 2020-01-30 09:28:24 +01:00
PooledHeapByteBuf.java Use lambdas whenever possible (#9979) 2020-01-30 09:28:24 +01:00
PooledSlicedByteBuf.java Use lambdas whenever possible (#9979) 2020-01-30 09:28:24 +01:00
PooledUnsafeDirectByteBuf.java Use lambdas whenever possible (#9979) 2020-01-30 09:28:24 +01:00
PooledUnsafeHeapByteBuf.java Use lambdas whenever possible (#9979) 2020-01-30 09:28:24 +01:00
PoolSubpage.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PoolSubpageMetric.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
PoolThreadCache.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
ReadOnlyByteBuf.java ByteBufs which are not resizable should not throw in ensureWritable(int,boolean) 2017-07-22 08:44:48 -07:00
ReadOnlyByteBufferBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
ReadOnlyUnsafeDirectByteBuf.java Fix incorrect behavior of ReadOnlyByteBufferBuf.getBytes(int,ByteBuffer) (#9125) 2019-05-13 07:03:10 +02:00
SimpleLeakAwareByteBuf.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
SimpleLeakAwareCompositeByteBuf.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
SizeClasses.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
SizeClassesMetric.java Review PooledByteBufAllocator in respect of jemalloc 4.x changes and update allocate algorithm.(#10267) 2020-07-16 08:24:27 +02:00
SlicedByteBuf.java retainSlice() unwrap ByteBuf 2016-07-29 11:16:44 -07:00
SwappedByteBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
Unpooled.java Add fastpath implementation for Unpooled.copiedBuffer(CharSequence, Charset) when UTF-8 or US-ASCII is used (#10206) 2020-04-23 18:02:05 +02:00
UnpooledByteBufAllocator.java Java 8 migration. Removed custom LongCounter and LongAdderCounter classes and replaced with direct reference to LongAdder (#8750) 2019-01-22 13:53:28 +01:00
UnpooledDirectByteBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
UnpooledDuplicatedByteBuf.java retained[Slice|Duplicate] buffer reference count bug 2016-11-17 09:35:39 -08:00
UnpooledHeapByteBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
UnpooledSlicedByteBuf.java retained[Slice|Duplicate] buffer reference count bug 2016-11-17 09:35:39 -08:00
UnpooledUnsafeDirectByteBuf.java All override methods must be added @override (#9285) 2019-06-27 13:52:06 +02:00
UnpooledUnsafeHeapByteBuf.java Make UnpooledUnsafeHeapByteBuf class public (#9184) 2019-05-31 07:04:52 +02:00
UnpooledUnsafeNoCleanerDirectByteBuf.java Don't zero non-readable buffer regions when capacity is decreased (#9427) 2019-08-16 08:28:33 +02:00
UnreleasableByteBuf.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
UnsafeByteBufUtil.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
UnsafeDirectSwappedByteBuf.java Add *UnsafeHeapByteBuf for improve performance on systems with sun.misc.Unsafe 2015-10-21 09:04:13 +02:00
UnsafeHeapSwappedByteBuf.java Add *UnsafeHeapByteBuf for improve performance on systems with sun.misc.Unsafe 2015-10-21 09:04:13 +02:00
WrappedByteBuf.java Introduce ByteBuf#isContiguous() method (#9735) 2019-11-06 12:07:00 +01:00
WrappedCompositeByteBuf.java Introduce ByteBuf.maxFastWritableBytes() method (#9086) 2019-05-22 20:11:56 +02:00
WrappedUnpooledUnsafeDirectByteBuf.java [#5645] Allow to create ByteBuf from existing memory address. 2016-08-16 14:16:15 +02:00