Code size analysis#

pw_multibuf: A buffer API optimized for zero-copy messaging

The following table shows the code size cost of using pw_multibuf. These size reports compare a fake MultiBuf implementation against the v1 and v2 pw_multibuf implementations, and also compares the two pw_multibuf implementations against each other.

The scenarios being measured involve sending and receiving data using a fake protocol stack. At the lowest layer, “DemoLink” frames carry “DemoNetwork” packets, which in turn carry segments of a “DemoTransport” message. This layered protocol demonstrates how different MultiBuf implementations can handle data encapsulation and fragmentation.

The v0 implementation uses simple, contiguous spans of memory, requiring data to be copied at each protocol layer. In contrast, pw_multibuf is designed to avoid these copies. It allows for reserving space for headers and footers, and can represent data as a collection of discontiguous memory chunks. This reduces memory usage and improves performance by minimizing data movement.

The key difference between pw_multibuf v1 and v2 lies in their approach to memory management. Version 1 integrates memory allocation directly, with a MultiBufAllocator that handles the creation of MultiBuf objects. Version 2 separates memory allocation from the buffer logic, allowing users to provide their own allocation schemes. Additionally, v2 introduces the concept of “layers” to more explicitly manage different views of the data, such as protocol layers.

Label

Segment

Delta

Cost of using MultiBuf v1 vs. a fake implementation

FLASH

+364

[section .rodata]

DEL

-424

pw::multibuf::size_report::ReceiverV0

DEL

-424

pw::multibuf::size_report::SenderV0

+6

pw::multibuf::size_report::Sender<>::DoPend()

+48

pw::multibuf::size_report::Receiver<>::DoPend()

-4

pw::multibuf::size_report::Sender<>::MakeDemoLinkFrame()

+36

pw::multibuf::size_report::TransferMessage<>()

+8

pw::multibuf::size_report::TransferMessage()

-12

pw::multibuf::size_report::Sender<>::MakeDemoTransportSegment()

+52

pw::async2::ReceiveFuture<>::DoPend()

-20

pw::multibuf::size_report::Receiver<>::HandleDemoLinkFrame()

DEL

-104

pw::multibuf::size_report::FakeMultiBuf::PushBack()

-4

pw::multibuf::size_report::Sender<>::MakeDemoNetworkPacket()

DEL

-98

pw::multibuf::size_report::ReceiverV0::~ReceiverV0()

DEL

-98

pw::multibuf::size_report::SenderV0::~SenderV0()

DEL

-96

pw::multibuf::size_report::ReceiverV0::ReceiverV0()

DEL

-96

pw::multibuf::size_report::SenderV0::SenderV0()

+40

pw::multibuf::size_report::FrameHandler<>::CalculateChecksum()

+4

pw::multibuf::size_report::Receiver<>::HandleDemoNetworkPacket()

DEL

-76

pw::multibuf::size_report::FrameHandlerV0::DoAllocateFrame()

-4

pw::multibuf::size_report::Receiver<>::HandleDemoTransportFirstSegment()

DEL

-60

pw::multibuf::size_report::FakeMultiBuf::set_view()

DEL

-50

pw::multibuf::size_report::FrameHandlerV0::DoPushBack()

+12

pw::containers::internal::GenericDeque<>::pop_front()

+8

pw::multibuf::size_report::Receiver<>::~Receiver()

DEL

-42

_ZNSt3__25equalB9nqn230000INS_11__wrap_iterIPSt4byteEENS1_IPKS2_EENS_10__equal_toEEEbT_S9_T0_SA_T1_

-6

pw::multibuf::size_report::Receiver<>::Receiver<>()

+40

pw::Result<>::operator->()

-8

pw::async2::ChannelStorage<>::ChannelStorage()

+16

pw::multibuf::size_report::FrameHandler<>::Truncate()

DEL

-40

pw::multibuf::size_report::FrameHandlerV0::DoNarrow()

+4

pw::async2::internal::Channel<>::PopAndWake()

DEL

-36

pw::multibuf::size_report::FrameHandlerV0::DoWiden()

+4

pw::FixedDeque<>::~FixedDeque()

DEL

-28

_ZNSt3__28optionalIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

DEL

-28

_ZNSt3__28optionalIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

DEL

-28

pw::multibuf::size_report::FrameHandlerV0::DoTruncate()

+2

pw::containers::internal::GenericDeque<>::EmplaceBackUnchecked<>()

DEL

-20

_ZNSt3__224__optional_destruct_baseIN2pw6async215SendReservationINS1_8multibuf11size_report12FakeMultiBufEEELb0EED2B9nqn230000Ev

+2

pw::containers::internal::IntrusiveListItemBase<>::~IntrusiveListItemBase()

DEL

-18

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE5resetB9nqn230000Ev

DEL

-18

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE5resetB9nqn230000Ev

+18

pw::containers::internal::LegacyIntrusiveList<>::Item::~Item()

-4

__bi_84

+16

pw::containers::internal::LegacyIntrusiveList<>::~LegacyIntrusiveList()

DEL

-16

pw::multibuf::size_report::FrameHandlerV0::GetEnd()

DEL

-14

_ZNSt3__223__optional_storage_baseIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

DEL

-14

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw6async215SendReservationINS2_8multibuf11size_report12FakeMultiBufEEEEELb0EED2B9nqn230000Ev

DEL

-12

_ZNSt3__223__optional_storage_baseIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

DEL

-12

__aeabi_memclr4

+4

operator delete()

DEL

-8

_ZNSt3__25equalB9nqn230000INS_11__wrap_iterIPSt4byteEENS1_IPKS2_EEEEbT_S8_T0_S9_

DEL

-8

pw::multibuf::size_report::FrameHandlerV0::GetBegin()

DEL

-8

pw::multibuf::size_report::FrameHandlerV0::~FrameHandlerV0()

NEW

+424

pw::multibuf::size_report::ReceiverV1

NEW

+424

pw::multibuf::size_report::SenderV1

NEW

+372

xQueueSemaphoreTake

NEW

+348

pw::multibuf::v1::SimpleAllocator::DoAllocate()

NEW

+216

pw::multibuf::v1::SimpleAllocator::DoAllocate()::$_0::operator()()

NEW

+172

pw::multibuf::v1::SimpleAllocator::InternalAllocateContiguous()::$_0::operator()()

NEW

+168

vTaskPriorityDisinheritAfterTimeout

NEW

+162

pw::multibuf::v1::MultiBuf::CopyFromAndOptionallyTruncate()

NEW

+140

xTaskPriorityInherit

NEW

+128

pw::multibuf::v1::SimpleAllocator::InternalAllocateContiguous()

NEW

+120

pw::multibuf::v1::SimpleAllocator::SimpleAllocator()

NEW

+112

pw::multibuf::v1::SimpleAllocator::InsertRegion()

NEW

+106

pw::multibuf::v1::Chunk::ClaimPrefix()

NEW

+106

pw::multibuf::v1::MultiBuf::CopyTo()

NEW

+104

pw::multibuf::v1::Chunk::Slice()

NEW

+102

pw::multibuf::v1::Chunk::ClaimSuffix()

NEW

+98

pw::multibuf::size_report::ReceiverV1::~ReceiverV1()

NEW

+98

pw::multibuf::size_report::SenderV1::~SenderV1()

NEW

+96

pw::multibuf::size_report::SenderV1::SenderV1()

NEW

+96

pw::multibuf::v1::MultiBuf::DiscardPrefix()

NEW

+92

pw::multibuf::size_report::FrameHandlerV1::DoWiden()

NEW

+92

pw::multibuf::size_report::ReceiverV1::ReceiverV1()

NEW

+90

pw::multibuf::v1::MultiBufAllocator::MoreMemoryAvailable()

NEW

+90

pw::multibuf::v1::SimpleAllocator::GetAvailableMemorySize()

NEW

+84

pw::multibuf::v1::MultiBuf::const_iterator::operator+=()

NEW

+82

pw::containers::internal::GenericDeque<>::contiguous_data()

NEW

+80

pw::Result<>::operator*()

NEW

+80

pw::multibuf::size_report::FrameHandlerV1::DoAllocateFrame()

NEW

+80

pw::multibuf::v1::MultiBuf::TruncateAfter()

NEW

+72

vQueueUnregisterQueue

NEW

+70

pw::multibuf::v1::ChunkRegionTracker::CreateFirstChunk()

NEW

+70

pw::multibuf::v1::internal::LinkedRegionTracker::~LinkedRegionTracker()

NEW

+68

_ZNSt3__212__equal_implB9nqn230000ILb0EN2pw8multibuf2v18MultiBuf8iteratorES5_PKSt4byteS8_NS_10__equal_toENS_10__identityESA_EEbT0_T1_T2_T3_RT4_RT5_RT6_

NEW

+66

pw::multibuf::v1::internal::LinkedRegionTracker::Destroy()

NEW

+64

pw::multibuf::v1::Chunk::Free()

NEW

+62

pw::multibuf::v1::MultiBufAllocator::AllocateContiguous()

NEW

+60

pw::sync::Mutex::lock()

NEW

+60

pw::sync::Mutex::unlock()

NEW

+54

pw::multibuf::v1::SimpleAllocator::~SimpleAllocator()

NEW

+52

pw::multibuf::v1::MultiBuf::Truncate()

NEW

+52

pw::multibuf::v1::MultiBufChunks::push_front()

NEW

+52

pw::multibuf::v1::MultiBufChunks::take_front()

NEW

+48

pw::internal_result::StatusOrData<>::AssignStatus<>()

NEW

+44

pw::multibuf::size_report::FrameHandlerV1::DoNarrow()

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_8multibuf2v110OwnedChunkELb0EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESB_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_8multibuf2v18MultiBufELb0EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESB_

NEW

+40

pw::Result<>::value()

NEW

+40

pw::allocator::BumpAllocator::BumpAllocator()

NEW

+40

pw::internal_result::StatusOrData<>::~StatusOrData()

NEW

+40

pw::multibuf::v1::MultiBuf::const_iterator::operator++()

NEW

+40

pw::multibuf::v1::MultiBufAllocator::~MultiBufAllocator()

NEW

+40

vQueueDelete

NEW

+38

pw::multibuf::size_report::Receiver<>::TakeReceived()

NEW

+36

pw::Deallocator::DeleteArray<>()

NEW

+36

pw::containers::internal::GenericDeque<>::DestroyAll()

NEW

+36

pw::multibuf::v1::internal::LinkedRegionTracker::LinkedRegionTracker()

NEW

+34

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v18MultiBuf8iteratorENS_11__wrap_iterIPKSt4byteEENS_10__equal_toEEEbT_SC_T0_SD_T1_

NEW

+34

pw::internal_result::StatusOrData<>::operator=()

NEW

+32

pw::multibuf::v1::ChunkRegionTracker

NEW

+32

pw::multibuf::v1::MultiBuf::begin()

NEW

+32

pw::multibuf::v1::MultiBufAllocator::MultiBufAllocator()

NEW

+32

pw::multibuf::v1::internal::LinkedRegionTracker

NEW

+30

_ZN2pw9Allocator3NewINS_8multibuf2v18internal19LinkedRegionTrackerETpTnRiJEJRNS3_15SimpleAllocatorERKNSt3__24spanISt4byteLj4294967295EEEEEENS9_9enable_ifIXntsr3stdE10is_array_vIT_EEPSG_E4typeEDpOT1_

NEW

+30

pw::internal_result::StatusOrData<>::Assign<>()

NEW

+28

_ZNSt3__28optionalIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

NEW

+28

_ZNSt3__28optionalIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

NEW

+28

pw::multibuf::v1::ChunkRegionTracker::~ChunkRegionTracker()

NEW

+28

pw::multibuf::v1::MultiBufChunks::PushSuffix()

NEW

+26

pw::multibuf::v1::MultiBuf::ClaimSuffix()

NEW

+24

_ZNSt3__29__destroyB9nqn230000INS_11__wrap_iterIPN2pw8multibuf2v18MultiBufEEEEET_S8_S8_

NEW

+24

__aeabi_uidivmod

NEW

+24

prvIsQueueEmpty

NEW

+24

pvTaskIncrementMutexHeldCount

NEW

+24

pw::multibuf::size_report::FrameHandlerV1::DoPushBack()

NEW

+24

pw::multibuf::size_report::FrameHandlerV1::DoTruncate()

NEW

+24

pw::multibuf::v1::Chunk::RemoveFromRegionList()

NEW

+24

pw::multibuf::v1::ChunkRegionTracker::ChunkRegionTracker()

NEW

+24

pw::multibuf::v1::MultiBufAllocator

NEW

+24

pw::multibuf::v1::SimpleAllocator

NEW

+22

pw::multibuf::v1::MultiBuf::empty()

NEW

+22

pw::multibuf::v1::MultiBufChunks::Release()

NEW

+22

pw::multibuf::v1::MultiBufChunks::operator=()

NEW

+22

pw::multibuf::v1::internal::LinkedRegionTracker::DeallocateChunkClass()

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw6async215SendReservationINS1_8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEELb0EE5resetB9nqn230000Ev

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf2v110OwnedChunkELb0EED2B9nqn230000Ev

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf2v18MultiBufELb0EED2B9nqn230000Ev

NEW

+20

_ZNSt3__29destroy_nB9nqn230000IPN2pw8multibuf2v18internal19LinkedRegionTrackerEjEET_S7_T0_

NEW

+20

pw::multibuf::size_report::FrameHandlerV1::GetBegin()

NEW

+20

pw::multibuf::v1::MultiBuf::const_iterator::AdvanceToData()

NEW

+20

pw::multibuf::v1::MultiBufChunks::size_bytes()

NEW

+20

pw::multibuf::v1::OwnedChunk::Release()

NEW

+20

pw::multibuf::v1::internal::LinkedRegionTracker::AllocateChunkClass()

NEW

+18

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEELb0EE5resetB9nqn230000Ev

NEW

+18

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v18MultiBuf8iteratorENS_11__wrap_iterIPKSt4byteEEEEbT_SB_T0_SC_

NEW

+18

pw::containers::internal::GenericDeque<>::clear()

NEW

+18

pw::internal_result::StatusOrData<>::Clear()

NEW

+18

pw::multibuf::v1::MultiBuf::ClaimPrefix()

NEW

+16

pw::multibuf::size_report::FrameHandlerV1::GetEnd()

NEW

+16

pw::multibuf::v1::MultiBuf::iterator::end()

NEW

+14

_ZNSt3__223__optional_storage_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw6async215SendReservationINS2_8multibuf2v18MultiBufEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

NEW

+14

pw::multibuf::v1::MultiBuf::const_iterator::end()

NEW

+14

pw::multibuf::v1::SimpleAllocator::DoGetBackingCapacity()

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

NEW

+12

__aeabi_memclr8

NEW

+12

pw::multibuf::v1::Chunk::Truncate()

NEW

+12

pw::multibuf::v1::MultiBuf::CopyFrom()

NEW

+12

pw::multibuf::v1::MultiBufChunks::back()

NEW

+10

_ZN2pw11Deallocator6DeleteINS_8multibuf2v18internal19LinkedRegionTrackerETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EEEvPS9_

NEW

+10

pw::multibuf::v1::Chunk::DiscardPrefix()

NEW

+10

pw::multibuf::v1::internal::LinkedRegionTracker::Region()

NEW

+8

pw::multibuf::size_report::FrameHandlerV1::~FrameHandlerV1()

+5,680

RAM

NEW

+1,024

pw::multibuf::size_report::metadata_region

NEW

+80

xQueueRegistry

+1,104

Cost of using MultiBuf v2 vs. a fake implementation

FLASH

+1,412

[section .rodata]

DEL

-424

pw::multibuf::size_report::ReceiverV0

DEL

-424

pw::multibuf::size_report::SenderV0

+6

pw::multibuf::size_report::Sender<>::DoPend()

+30

pw::multibuf::size_report::Receiver<>::DoPend()

-4

pw::multibuf::size_report::Sender<>::MakeDemoLinkFrame()

+44

pw::multibuf::size_report::TransferMessage<>()

+28

pw::multibuf::size_report::TransferMessage()

-12

pw::multibuf::size_report::Sender<>::MakeDemoTransportSegment()

+44

pw::async2::ReceiveFuture<>::DoPend()

-20

pw::multibuf::size_report::Receiver<>::HandleDemoLinkFrame()

+2

pw::Allocator::DoReallocate()

DEL

-104

pw::multibuf::size_report::FakeMultiBuf::PushBack()

-4

pw::multibuf::size_report::Sender<>::MakeDemoNetworkPacket()

DEL

-98

pw::multibuf::size_report::ReceiverV0::~ReceiverV0()

DEL

-98

pw::multibuf::size_report::SenderV0::~SenderV0()

DEL

-96

pw::multibuf::size_report::ReceiverV0::ReceiverV0()

DEL

-96

pw::multibuf::size_report::SenderV0::SenderV0()

+52

pw::multibuf::size_report::FrameHandler<>::CalculateChecksum()

+4

pw::multibuf::size_report::Receiver<>::HandleDemoNetworkPacket()

DEL

-76

pw::multibuf::size_report::FrameHandlerV0::DoAllocateFrame()

-4

pw::multibuf::size_report::Receiver<>::HandleDemoTransportFirstSegment()

DEL

-60

pw::multibuf::size_report::FakeMultiBuf::set_view()

DEL

-50

pw::multibuf::size_report::FrameHandlerV0::DoPushBack()

+44

pw::containers::internal::GenericDeque<>::front()

+56

pw::containers::internal::GenericDeque<>::pop_front()

+8

pw::multibuf::size_report::Receiver<>::~Receiver()

DEL

-42

_ZNSt3__25equalB9nqn230000INS_11__wrap_iterIPSt4byteEENS1_IPKS2_EENS_10__equal_toEEEbT_S9_T0_SA_T1_

+10

pw::multibuf::size_report::Receiver<>::Receiver<>()

+16

pw::multibuf::size_report::FrameHandler<>::Truncate()

DEL

-40

pw::multibuf::size_report::FrameHandlerV0::DoNarrow()

+60

pw::containers::internal::GenericDeque<>::try_emplace_back<>()

+2

pw::async2::internal::Channel<>::PopAndWake()

DEL

-36

pw::multibuf::size_report::FrameHandlerV0::DoWiden()

+2

pw::Allocator::Reallocate()

+4

pw::FixedDeque<>::~FixedDeque()

DEL

-28

_ZNSt3__28optionalIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

DEL

-28

_ZNSt3__28optionalIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

DEL

-28

pw::multibuf::size_report::FrameHandlerV0::DoTruncate()

-2

pw::Allocator::Resize()

+46

pw::containers::internal::GenericDeque<>::EmplaceBackUnchecked<>()

DEL

-20

_ZNSt3__224__optional_destruct_baseIN2pw6async215SendReservationINS1_8multibuf11size_report12FakeMultiBufEEELb0EED2B9nqn230000Ev

-8

vClearInterruptMaskFromISR

DEL

-18

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE5resetB9nqn230000Ev

DEL

-18

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE5resetB9nqn230000Ev

-4

__bi_84

DEL

-16

pw::multibuf::size_report::FrameHandlerV0::GetEnd()

DEL

-14

_ZNSt3__223__optional_storage_baseIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

DEL

-14

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw6async215SendReservationINS2_8multibuf11size_report12FakeMultiBufEEEEELb0EED2B9nqn230000Ev

DEL

-12

_ZNSt3__223__optional_storage_baseIN2pw6async217ReserveSendFutureINS1_8multibuf11size_report12FakeMultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

+4

operator delete()

+28

pw::Deallocator::DoDeallocate()

DEL

-8

_ZNSt3__25equalB9nqn230000INS_11__wrap_iterIPSt4byteEENS1_IPKS2_EEEEbT_S8_T0_S9_

DEL

-8

pw::multibuf::size_report::FrameHandlerV0::GetBegin()

DEL

-8

pw::multibuf::size_report::FrameHandlerV0::~FrameHandlerV0()

NEW

+636

pw::multibuf::v2::internal::GenericMultiBuf::Insert()

NEW

+484

pw::multibuf::v2::internal::GenericMultiBuf::AddLayer()

NEW

+424

pw::multibuf::size_report::ReceiverV2

NEW

+424

pw::multibuf::size_report::SenderV2

NEW

+272

pw::multibuf::v2::internal::GenericMultiBuf::PopLayer()

NEW

+260

pw::multibuf::v2::internal::GenericMultiBuf::InsertChunks()

NEW

+238

_ZNSt3__234__cxx_atomic_compare_exchange_weakB9nqn230000IjEEbPNS_22__cxx_atomic_base_implIT_EEPS2_S2_NS_12memory_orderES6_

NEW

+204

pw::multibuf::v2::internal::GenericMultiBuf::TruncateTopLayer()

NEW

+192

pw::multibuf::v2::internal::GenericMultiBuf::SplitAfter()

NEW

+182

pw::multibuf::v2::internal::GenericMultiBuf::TryReserveForInsert()

NEW

+166

pw::containers::internal::GenericDeque<>::contiguous_data()

NEW

+158

pw::multibuf::v2::internal::GenericMultiBuf::EraseRange()

NEW

+156

pw::containers::internal::GenericDeque<>::erase()

NEW

+156

pw::multibuf::v2::internal::GenericMultiBuf::ClearRange()

NEW

+148

pw::multibuf::v2::internal::GenericMultiBuf::SplitBase()

NEW

+148

pw::multibuf::v2::internal::operator-()

NEW

+144

pw::multibuf::v2::internal::BasicByteIterator::Increment()

NEW

+144

pw::multibuf::v2::internal::GenericMultiBuf::SplitBefore()

NEW

+140

pw::allocator::ChunkPool::ChunkPool()

NEW

+132

pw::DynamicDeque<>::ReallocateBuffer()

NEW

+120

pw::multibuf::size_report::FrameHandlerV2::DoAllocateFrame()

NEW

+120

pw::multibuf::v2::internal::BasicByteIterator::Decrement()

NEW

+112

pw::allocator::ChunkPool::DoGetInfo()

NEW

+112

pw::containers::internal::GenericDeque<>::operator[]()

NEW

+104

pw::multibuf::size_report::SenderV2::SenderV2()

NEW

+104

pw::multibuf::v2::internal::CheckedCast<>()

NEW

+104

pw::multibuf::v2::internal::GenericMultiBuf::CopyToImpl()

NEW

+102

pw::multibuf::v2::internal::GenericMultiBuf::CopyFrom()

NEW

+100

_ZNKSt3__211__move_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_EENS_4pairIT_T1_EESG_T0_SH_

NEW

+100

pw::multibuf::size_report::ReceiverV2::ReceiverV2()

NEW

+100

pw::multibuf::size_report::SenderV2::~SenderV2()

NEW

+100

pw::multibuf::v2::internal::GenericMultiBuf::TryConvertToShared()

NEW

+100

pw::multibuf::v2::internal::GenericMultiBuf::UnsealTopLayer()

NEW

+98

_ZNKSt3__220__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_EENS_4pairIT_T1_EESG_T0_SH_

NEW

+98

pw::multibuf::size_report::ReceiverV2::~ReceiverV2()

NEW

+92

pw::multibuf::v2::internal::GenericMultiBuf::Clear()

NEW

+88

pw::allocator::internal::ControlBlock::IncrementShared()

NEW

+84

pw::multibuf::v2::internal::GenericMultiBuf::TryReserveEntries()

NEW

+80

pw::containers::internal::GenericDeque<>::push_back()

NEW

+78

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v28internal12ByteIteratorILNS4_10MutabilityE0EEENS_11__wrap_iterIPKSt4byteEENS_10__equal_toEEEbT_SE_T0_SF_T1_

NEW

+78

pw::multibuf::v2::internal::Entry::GetView()

NEW

+74

pw::DynamicDeque<>::try_reserve()

NEW

+74

pw::multibuf::v2::internal::BasicByteIterator::Compare()

NEW

+72

pw::SharedPtr<>::reset()

NEW

+72

pw::allocator::Pool::NewArray<>()

NEW

+72

pw::allocator::internal::ControlBlock::ControlBlock()

NEW

+68

_ZNSt3__217__equal_iter_implB9nqn230000IN2pw8multibuf2v28internal12ByteIteratorILNS4_10MutabilityE0EEES7_PKSt4byteNS_10__equal_toENS_10__identityESC_EEbT_T0_T1_RT2_RT3_RT4_

NEW

+68

__atomic_compare_exchange_4

NEW

+68

pw::DynamicDeque<>::IncreaseCapacity()

NEW

+60

pw::multibuf::size_report::FrameHandlerV2::DoNarrow()

NEW

+56

pw::multibuf::v2::internal::ByteIterator<>::operator*()

NEW

+56

pw::multibuf::v2::internal::Entry::GetControlBlock()

NEW

+56

pw::multibuf::v2::internal::Entry::GetDeallocator()

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_11__move_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISG_SH_EESG_T1_SH_

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_20__move_backward_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISG_SH_EESG_T1_SH_

NEW

+52

pw::allocator::Hardening::Multiply<>()

NEW

+52

pw::allocator::internal::ControlBlock::Create()

NEW

+52

pw::containers::internal::GenericDequeBase<>::AbsoluteIndexChecked()

NEW

+50

pw::multibuf::size_report::FrameHandlerV2::DoWiden()

NEW

+50

pw::multibuf::v2::BasicMultiBuf<>::PushBack()

NEW

+48

pw::multibuf::size_report::Receiver<>::TakeReceived()

NEW

+48

pw::multibuf::v2::BasicMultiBuf<>::PushBack<>()

NEW

+48

pw::multibuf::v2::internal::Entry::GetLength()

NEW

+48

pw::multibuf::v2::internal::Entry::GetOffset()

NEW

+46

pw::multibuf::v2::internal::Entry::IsBoundary()

NEW

+46

pw::multibuf::v2::internal::operator+<>()

NEW

+44

pw::DynamicDeque<>::operator=()

NEW

+42

pw::UniquePtr<>::Reset()

NEW

+40

__atomic_fetch_sub_4

NEW

+40

pw::Result<>::value()

NEW

+40

pw::allocator::Layout::Of<>()

NEW

+40

pw::multibuf::v2::internal::GenericMultiBuf::size()

NEW

+38

pw::containers::internal::GenericDeque<>::DestroyAll()

NEW

+38

pw::multibuf::v2::BasicMultiBuf<>::Insert()

NEW

+38

pw::multibuf::v2::internal::ByteIterator<>::operator ?<>()

NEW

+38

pw::multibuf::v2::internal::GenericMultiBuf::cend()

NEW

+36

_ZNSt3__213move_backwardB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeINS1_8multibuf2v28internal5EntryEtEEEESB_EET0_T_SD_SC_

NEW

+36

_ZNSt3__24moveB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeINS1_8multibuf2v28internal5EntryEtEEEESB_EET0_T_SD_SC_

NEW

+36

pw::allocator::internal::ControlBlock::DecrementShared()

NEW

+36

pw::multibuf::v2::internal::BasicByteIterator::deque()

NEW

+36

pw::multibuf::v2::internal::Entry::IsSealed()

NEW

+32

__atomic_load_4

NEW

+32

pw::allocator::ChunkPool

NEW

+32

pw::allocator::Pool

NEW

+32

pw::multibuf::v2::internal::GenericMultiBuf::GenericMultiBuf()

NEW

+30

pw::multibuf::v2::internal::GenericMultiBuf::operator=()

NEW

+28

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v28internal12ByteIteratorILNS4_10MutabilityE0EEENS_11__wrap_iterIPKSt4byteEEEEbT_SD_T0_SE_

NEW

+28

_ZNSt3__28optionalIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEEEaSB9nqn230000ISC_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ESD_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISI_SC_EE5valuenesZT1_Li0EEE7_ResultINSG_IbXntu9__is_sameSI_SC_EEEENS_4_NotINS_9is_scalarISC_EEEEEENS_16is_constructibleISC_JSH_EEENS_13is_assignableIRSC_SH_EENS_9is_objectISC_EEEE5valueEiE4typeELi0EEERSD_OSH_

NEW

+28

_ZNSt3__28optionalIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEEEaSB9nqn230000ISC_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ESD_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISI_SC_EE5valuenesZT1_Li0EEE7_ResultINSG_IbXntu9__is_sameSI_SC_EEEENS_4_NotINS_9is_scalarISC_EEEEEENS_16is_constructibleISC_JSH_EEENS_13is_assignableIRSC_SH_EENS_9is_objectISC_EEEE5valueEiE4typeELi0EEERSD_OSH_

NEW

+28

pw::allocator::internal::ControlBlock::~ControlBlock()

NEW

+28

pw::containers::internal::GenericDequeBase<>::MoveAssignIndices()

NEW

+28

pw::multibuf::v2::internal::ByteIterator<>::operator++()

NEW

+28

pw::multibuf::v2::internal::GenericMultiBuf::end()

NEW

+26

pw::multibuf::v2::internal::GenericMultiBuf::cbegin()

NEW

+24

__aeabi_uidivmod

NEW

+24

pw::multibuf::size_report::FrameHandlerV2::DoPushBack()

NEW

+24

pw::multibuf::size_report::FrameHandlerV2::DoTruncate()

NEW

+24

pw::multibuf::v2::internal::operator!=()

NEW

+22

_ZN2pw9allocator4Pool10MakeUniqueIA_St4byteTpTnRiJETnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEENS_9UniquePtrIS8_EEv

NEW

+22

pw::DynamicDeque<>::~DynamicDeque()

NEW

+22

pw::containers::internal::GenericDeque<>::CheckCapacityAdd()

NEW

+22

pw::multibuf::v2::internal::GenericMultiBuf::GetLength()

NEW

+22

pw::multibuf::v2::internal::GenericMultiBuf::GetOffset()

NEW

+22

pw::multibuf::v2::internal::GenericMultiBuf::IsBoundary()

NEW

+20

_ZNSt3__220__optional_move_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EEC2B9nqn230000EOSA_

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw6async215SendReservationINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE5resetB9nqn230000Ev

NEW

+20

_ZNSt3__29__destroyB9nqn230000INS_11__wrap_iterIPN2pw8multibuf2v28internal8InstanceINS4_13BasicMultiBufIJLNS4_8PropertyE2EEEEEEEEEET_SD_SD_

NEW

+20

pw::multibuf::size_report::FrameHandlerV2::GetBegin()

NEW

+20

pw::multibuf::size_report::FrameHandlerV2::GetEnd()

NEW

+20

pw::multibuf::v2::internal::Entry::IsShared()

NEW

+18

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE5resetB9nqn230000Ev

NEW

+18

pw::DynamicDeque<>::try_reserve_exact()

NEW

+18

pw::containers::internal::GenericDeque<>::clear()

NEW

+18

pw::multibuf::v2::internal::Entry::IsOwned()

NEW

+18

pw::multibuf::v2::internal::GenericMultiBuf::MakeIterator()

NEW

+16

__aeabi_idivmod

NEW

+16

pw::containers::internal::GenericDeque<>::at()

NEW

+16

pw::multibuf::v2::internal::Entry::GetData()

NEW

+16

pw::multibuf::v2::internal::GenericMultiBuf::~GenericMultiBuf()

NEW

+14

_ZNSt3__223__optional_storage_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE11__constructB9nqn230000IJSC_EEEvDpOT_

NEW

+14

_ZNSt3__223__optional_storage_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EE16__construct_fromB9nqn230000INS_20__optional_move_baseIS9_Lb0EEEEEvOT_

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw6async215SendReservationINS2_8multibuf2v28internal8InstanceINS6_13BasicMultiBufIJLNS6_8PropertyE2EEEEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw8multibuf2v28internal8InstanceINS4_13BasicMultiBufIJLNS4_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__28optionalIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEEEC2B9nqn230000IS9_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitISD_EEEiE4typeELi0EEEOSD_

NEW

+14

pw::allocator::ChunkPool::DoAllocate()

NEW

+14

pw::allocator::internal::BaseManagedPtr::Deallocate()

NEW

+14

pw::multibuf::v2::internal::GenericMultiBuf::begin()

NEW

+12

_ZNSt3__213__atomic_baseIjLb0EE21compare_exchange_weakB9nqn230000ERjjNS_12memory_orderE

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE11__constructB9nqn230000IJSC_EEEvDpOT_

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EE11__constructB9nqn230000IJS9_EEEvDpOT_

NEW

+12

_ZNSt3__28optionalINS0_IN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEEEEEC2B9nqn230000ISA_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitISE_EEEiE4typeELi0EEEOSE_

NEW

+12

pw::allocator::ChunkPool::DoDeallocate()

NEW

+12

pw::containers::internal::DequeIterator<>::operator*()

NEW

+12

pw::multibuf::v2::internal::ByteIterator<>::operator+=<>()

NEW

+12

pw::multibuf::v2::internal::GenericMultiBuf::CopyTo()

NEW

+12

pw::multibuf::v2::internal::GenericMultiBuf::IsOwned()

NEW

+10

pw::allocator::ChunkPool::~ChunkPool()

NEW

+10

pw::allocator::internal::BaseManagedPtr::HasCapability()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetControlBlock()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetData()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetDeallocator()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetView()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::IsSealed()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::IsShared()

NEW

+8

pw::allocator::internal::BaseManagedPtr::Resize()

NEW

+8

pw::multibuf::size_report::FrameHandlerV2::kLayout

NEW

+8

pw::multibuf::size_report::FrameHandlerV2::~FrameHandlerV2()

NEW

+2

pw::Deallocator::~Deallocator()

NEW

+2

pw::allocator::Pool::~Pool()

+10,128

RAM

NEW

+1,024

pw::multibuf::size_report::metadata_region

+1,024

Cost of using MultiBuf v2 vs. v1

FLASH

+1,048

[section .rodata]

DEL

-424

pw::multibuf::size_report::ReceiverV1

DEL

-424

pw::multibuf::size_report::SenderV1

DEL

-372

xQueueSemaphoreTake

DEL

-348

pw::multibuf::v1::SimpleAllocator::DoAllocate()

-18

pw::multibuf::size_report::Receiver<>::DoPend()

DEL

-216

pw::multibuf::v1::SimpleAllocator::DoAllocate()::$_0::operator()()

+8

pw::multibuf::size_report::TransferMessage<>()

-8

pw::async2::ReceiveFuture<>::DoPend()

DEL

-172

pw::multibuf::v1::SimpleAllocator::InternalAllocateContiguous()::$_0::operator()()

DEL

-168

vTaskPriorityDisinheritAfterTimeout

DEL

-162

pw::multibuf::v1::MultiBuf::CopyFromAndOptionallyTruncate()

+20

pw::multibuf::size_report::TransferMessage()

DEL

-140

xTaskPriorityInherit

+12

pw::multibuf::size_report::FrameHandler<>::CalculateChecksum()

DEL

-128

pw::multibuf::v1::SimpleAllocator::InternalAllocateContiguous()

+2

pw::Allocator::DoReallocate()

DEL

-120

pw::multibuf::v1::SimpleAllocator::SimpleAllocator()

DEL

-112

pw::multibuf::v1::SimpleAllocator::InsertRegion()

DEL

-106

pw::multibuf::v1::Chunk::ClaimPrefix()

DEL

-106

pw::multibuf::v1::MultiBuf::CopyTo()

DEL

-104

pw::multibuf::v1::Chunk::Slice()

DEL

-102

pw::multibuf::v1::Chunk::ClaimSuffix()

DEL

-98

pw::multibuf::size_report::ReceiverV1::~ReceiverV1()

DEL

-98

pw::multibuf::size_report::SenderV1::~SenderV1()

DEL

-96

pw::multibuf::size_report::SenderV1::SenderV1()

DEL

-96

pw::multibuf::v1::MultiBuf::DiscardPrefix()

DEL

-92

pw::multibuf::size_report::FrameHandlerV1::DoWiden()

DEL

-92

pw::multibuf::size_report::ReceiverV1::ReceiverV1()

DEL

-90

pw::multibuf::v1::MultiBufAllocator::MoreMemoryAvailable()

DEL

-90

pw::multibuf::v1::SimpleAllocator::GetAvailableMemorySize()

DEL

-84

pw::multibuf::v1::MultiBuf::const_iterator::operator+=()

+84

pw::containers::internal::GenericDeque<>::contiguous_data()

DEL

-80

pw::Result<>::operator*()

-40

pw::Result<>::operator->()

DEL

-80

pw::multibuf::size_report::FrameHandlerV1::DoAllocateFrame()

DEL

-80

pw::multibuf::v1::MultiBuf::TruncateAfter()

DEL

-72

vQueueUnregisterQueue

DEL

-70

pw::multibuf::v1::ChunkRegionTracker::CreateFirstChunk()

DEL

-70

pw::multibuf::v1::internal::LinkedRegionTracker::~LinkedRegionTracker()

DEL

-68

_ZNSt3__212__equal_implB9nqn230000ILb0EN2pw8multibuf2v18MultiBuf8iteratorES5_PKSt4byteS8_NS_10__equal_toENS_10__identityESA_EEbT0_T1_T2_T3_RT4_RT5_RT6_

DEL

-66

pw::multibuf::v1::internal::LinkedRegionTracker::Destroy()

DEL

-64

pw::multibuf::v1::Chunk::Free()

DEL

-62

pw::multibuf::v1::MultiBufAllocator::AllocateContiguous()

DEL

-60

pw::sync::Mutex::lock()

DEL

-60

pw::sync::Mutex::unlock()

+44

pw::containers::internal::GenericDeque<>::pop_front()

DEL

-54

pw::multibuf::v1::SimpleAllocator::~SimpleAllocator()

DEL

-52

pw::multibuf::v1::MultiBuf::Truncate()

DEL

-52

pw::multibuf::v1::MultiBufChunks::push_front()

DEL

-52

pw::multibuf::v1::MultiBufChunks::take_front()

DEL

-48

pw::internal_result::StatusOrData<>::AssignStatus<>()

+44

pw::containers::internal::GenericDeque<>::front()

DEL

-44

pw::multibuf::size_report::FrameHandlerV1::DoNarrow()

DEL

-40

_ZN2pw15internal_result12StatusOrDataINS_8multibuf2v110OwnedChunkELb0EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESB_

DEL

-40

_ZN2pw15internal_result12StatusOrDataINS_8multibuf2v18MultiBufELb0EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESB_

DEL

-40

pw::allocator::BumpAllocator::BumpAllocator()

-2

pw::async2::internal::Channel<>::PopAndWake()

DEL

-40

pw::internal_result::StatusOrData<>::~StatusOrData()

DEL

-40

pw::multibuf::v1::MultiBuf::const_iterator::operator++()

DEL

-40

pw::multibuf::v1::MultiBufAllocator::~MultiBufAllocator()

DEL

-40

vQueueDelete

+60

pw::containers::internal::GenericDeque<>::try_emplace_back<>()

+10

pw::multibuf::size_report::Receiver<>::TakeReceived()

DEL

-36

pw::Deallocator::DeleteArray<>()

+2

pw::containers::internal::GenericDeque<>::DestroyAll()

-18

pw::containers::internal::LegacyIntrusiveList<>::Item::~Item()

+16

pw::multibuf::size_report::Receiver<>::Receiver<>()

DEL

-36

pw::multibuf::v1::internal::LinkedRegionTracker::LinkedRegionTracker()

DEL

-34

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v18MultiBuf8iteratorENS_11__wrap_iterIPKSt4byteEENS_10__equal_toEEEbT_SC_T0_SD_T1_

DEL

-34

pw::internal_result::StatusOrData<>::operator=()

+2

pw::Allocator::Reallocate()

+8

pw::async2::ChannelStorage<>::ChannelStorage()

-16

pw::containers::internal::LegacyIntrusiveList<>::~LegacyIntrusiveList()

DEL

-32

pw::multibuf::v1::ChunkRegionTracker

DEL

-32

pw::multibuf::v1::MultiBuf::begin()

DEL

-32

pw::multibuf::v1::MultiBufAllocator::MultiBufAllocator()

DEL

-32

pw::multibuf::v1::internal::LinkedRegionTracker

DEL

-30

_ZN2pw9Allocator3NewINS_8multibuf2v18internal19LinkedRegionTrackerETpTnRiJEJRNS3_15SimpleAllocatorERKNSt3__24spanISt4byteLj4294967295EEEEEENS9_9enable_ifIXntsr3stdE10is_array_vIT_EEPSG_E4typeEDpOT1_

DEL

-30

pw::internal_result::StatusOrData<>::Assign<>()

DEL

-28

_ZNSt3__28optionalIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

DEL

-28

_ZNSt3__28optionalIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEEEaSB9nqn230000IS7_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES8_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISD_S7_EE5valuenesZT1_Li0EEE7_ResultINSB_IbXntu9__is_sameSD_S7_EEEENS_4_NotINS_9is_scalarIS7_EEEEEENS_16is_constructibleIS7_JSC_EEENS_13is_assignableIRS7_SC_EENS_9is_objectIS7_EEEE5valueEiE4typeELi0EEERS8_OSC_

DEL

-28

pw::multibuf::v1::ChunkRegionTracker::~ChunkRegionTracker()

DEL

-28

pw::multibuf::v1::MultiBufChunks::PushSuffix()

-2

pw::Allocator::Resize()

DEL

-26

pw::multibuf::v1::MultiBuf::ClaimSuffix()

DEL

-24

_ZNSt3__29__destroyB9nqn230000INS_11__wrap_iterIPN2pw8multibuf2v18MultiBufEEEEET_S8_S8_

DEL

-24

prvIsQueueEmpty

DEL

-24

pvTaskIncrementMutexHeldCount

+44

pw::containers::internal::GenericDeque<>::EmplaceBackUnchecked<>()

DEL

-24

pw::multibuf::size_report::FrameHandlerV1::DoPushBack()

DEL

-24

pw::multibuf::size_report::FrameHandlerV1::DoTruncate()

DEL

-24

pw::multibuf::v1::Chunk::RemoveFromRegionList()

DEL

-24

pw::multibuf::v1::ChunkRegionTracker::ChunkRegionTracker()

DEL

-24

pw::multibuf::v1::MultiBufAllocator

DEL

-24

pw::multibuf::v1::SimpleAllocator

-2

pw::containers::internal::IntrusiveListItemBase<>::~IntrusiveListItemBase()

DEL

-22

pw::multibuf::v1::MultiBuf::empty()

DEL

-22

pw::multibuf::v1::MultiBufChunks::Release()

DEL

-22

pw::multibuf::v1::MultiBufChunks::operator=()

DEL

-22

pw::multibuf::v1::internal::LinkedRegionTracker::DeallocateChunkClass()

DEL

-20

_ZNSt3__224__optional_destruct_baseIN2pw6async215SendReservationINS1_8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

DEL

-20

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEELb0EE5resetB9nqn230000Ev

DEL

-20

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf2v110OwnedChunkELb0EED2B9nqn230000Ev

DEL

-20

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf2v18MultiBufELb0EED2B9nqn230000Ev

DEL

-20

_ZNSt3__29destroy_nB9nqn230000IPN2pw8multibuf2v18internal19LinkedRegionTrackerEjEET_S7_T0_

DEL

-20

pw::multibuf::size_report::FrameHandlerV1::GetBegin()

DEL

-20

pw::multibuf::v1::MultiBuf::const_iterator::AdvanceToData()

DEL

-20

pw::multibuf::v1::MultiBufChunks::size_bytes()

DEL

-20

pw::multibuf::v1::OwnedChunk::Release()

DEL

-20

pw::multibuf::v1::internal::LinkedRegionTracker::AllocateChunkClass()

-8

vClearInterruptMaskFromISR

DEL

-18

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEELb0EE5resetB9nqn230000Ev

DEL

-18

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v18MultiBuf8iteratorENS_11__wrap_iterIPKSt4byteEEEEbT_SB_T0_SC_

DEL

-18

pw::internal_result::StatusOrData<>::Clear()

DEL

-18

pw::multibuf::v1::MultiBuf::ClaimPrefix()

DEL

-16

pw::multibuf::size_report::FrameHandlerV1::GetEnd()

DEL

-16

pw::multibuf::v1::MultiBuf::iterator::end()

DEL

-14

_ZNSt3__223__optional_storage_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

DEL

-14

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw6async215SendReservationINS2_8multibuf2v18MultiBufEEEEELb0EED2B9nqn230000Ev

DEL

-14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw8multibuf2v18MultiBufEEELb0EED2B9nqn230000Ev

DEL

-14

pw::multibuf::v1::MultiBuf::const_iterator::end()

DEL

-14

pw::multibuf::v1::SimpleAllocator::DoGetBackingCapacity()

DEL

-12

_ZNSt3__223__optional_storage_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v18MultiBufEEELb0EE11__constructB9nqn230000IJS7_EEEvDpOT_

DEL

-12

__aeabi_memclr8

DEL

-12

pw::multibuf::v1::Chunk::Truncate()

DEL

-12

pw::multibuf::v1::MultiBuf::CopyFrom()

DEL

-12

pw::multibuf::v1::MultiBufChunks::back()

DEL

-10

_ZN2pw11Deallocator6DeleteINS_8multibuf2v18internal19LinkedRegionTrackerETpTnRiJETnNSt3__29enable_ifIXnt10is_array_vIT_EEiE4typeELi0EEEvPS9_

+28

pw::Deallocator::DoDeallocate()

DEL

-10

pw::multibuf::v1::Chunk::DiscardPrefix()

DEL

-10

pw::multibuf::v1::internal::LinkedRegionTracker::Region()

DEL

-8

pw::multibuf::size_report::FrameHandlerV1::~FrameHandlerV1()

NEW

+636

pw::multibuf::v2::internal::GenericMultiBuf::Insert()

NEW

+484

pw::multibuf::v2::internal::GenericMultiBuf::AddLayer()

NEW

+424

pw::multibuf::size_report::ReceiverV2

NEW

+424

pw::multibuf::size_report::SenderV2

NEW

+272

pw::multibuf::v2::internal::GenericMultiBuf::PopLayer()

NEW

+260

pw::multibuf::v2::internal::GenericMultiBuf::InsertChunks()

NEW

+238

_ZNSt3__234__cxx_atomic_compare_exchange_weakB9nqn230000IjEEbPNS_22__cxx_atomic_base_implIT_EEPS2_S2_NS_12memory_orderES6_

NEW

+204

pw::multibuf::v2::internal::GenericMultiBuf::TruncateTopLayer()

NEW

+192

pw::multibuf::v2::internal::GenericMultiBuf::SplitAfter()

NEW

+182

pw::multibuf::v2::internal::GenericMultiBuf::TryReserveForInsert()

NEW

+158

pw::multibuf::v2::internal::GenericMultiBuf::EraseRange()

NEW

+156

pw::containers::internal::GenericDeque<>::erase()

NEW

+156

pw::multibuf::v2::internal::GenericMultiBuf::ClearRange()

NEW

+148

pw::multibuf::v2::internal::GenericMultiBuf::SplitBase()

NEW

+148

pw::multibuf::v2::internal::operator-()

NEW

+144

pw::multibuf::v2::internal::BasicByteIterator::Increment()

NEW

+144

pw::multibuf::v2::internal::GenericMultiBuf::SplitBefore()

NEW

+140

pw::allocator::ChunkPool::ChunkPool()

NEW

+132

pw::DynamicDeque<>::ReallocateBuffer()

NEW

+120

pw::multibuf::size_report::FrameHandlerV2::DoAllocateFrame()

NEW

+120

pw::multibuf::v2::internal::BasicByteIterator::Decrement()

NEW

+112

pw::allocator::ChunkPool::DoGetInfo()

NEW

+112

pw::containers::internal::GenericDeque<>::operator[]()

NEW

+104

pw::multibuf::size_report::SenderV2::SenderV2()

NEW

+104

pw::multibuf::v2::internal::CheckedCast<>()

NEW

+104

pw::multibuf::v2::internal::GenericMultiBuf::CopyToImpl()

NEW

+102

pw::multibuf::v2::internal::GenericMultiBuf::CopyFrom()

NEW

+100

_ZNKSt3__211__move_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_EENS_4pairIT_T1_EESG_T0_SH_

NEW

+100

pw::multibuf::size_report::ReceiverV2::ReceiverV2()

NEW

+100

pw::multibuf::size_report::SenderV2::~SenderV2()

NEW

+100

pw::multibuf::v2::internal::GenericMultiBuf::TryConvertToShared()

NEW

+100

pw::multibuf::v2::internal::GenericMultiBuf::UnsealTopLayer()

NEW

+98

_ZNKSt3__220__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqn230000IN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_EENS_4pairIT_T1_EESG_T0_SH_

NEW

+98

pw::multibuf::size_report::ReceiverV2::~ReceiverV2()

NEW

+92

pw::multibuf::v2::internal::GenericMultiBuf::Clear()

NEW

+88

pw::allocator::internal::ControlBlock::IncrementShared()

NEW

+84

pw::multibuf::v2::internal::GenericMultiBuf::TryReserveEntries()

NEW

+80

pw::containers::internal::GenericDeque<>::push_back()

NEW

+78

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v28internal12ByteIteratorILNS4_10MutabilityE0EEENS_11__wrap_iterIPKSt4byteEENS_10__equal_toEEEbT_SE_T0_SF_T1_

NEW

+78

pw::multibuf::v2::internal::Entry::GetView()

NEW

+74

pw::DynamicDeque<>::try_reserve()

NEW

+74

pw::multibuf::v2::internal::BasicByteIterator::Compare()

NEW

+72

pw::SharedPtr<>::reset()

NEW

+72

pw::allocator::Pool::NewArray<>()

NEW

+72

pw::allocator::internal::ControlBlock::ControlBlock()

NEW

+68

_ZNSt3__217__equal_iter_implB9nqn230000IN2pw8multibuf2v28internal12ByteIteratorILNS4_10MutabilityE0EEES7_PKSt4byteNS_10__equal_toENS_10__identityESC_EEbT_T0_T1_RT2_RT3_RT4_

NEW

+68

__atomic_compare_exchange_4

NEW

+68

pw::DynamicDeque<>::IncreaseCapacity()

NEW

+60

pw::multibuf::size_report::FrameHandlerV2::DoNarrow()

NEW

+56

pw::multibuf::v2::internal::ByteIterator<>::operator*()

NEW

+56

pw::multibuf::v2::internal::Entry::GetControlBlock()

NEW

+56

pw::multibuf::v2::internal::Entry::GetDeallocator()

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_11__move_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISG_SH_EESG_T1_SH_

NEW

+54

_ZNSt3__224__copy_move_unwrap_itersB9nqn230000INS_20__move_backward_implINS_17_ClassicAlgPolicyEEEN2pw10containers8internal13DequeIteratorINS4_12DynamicDequeINS4_8multibuf2v28internal5EntryEtEEEESE_SE_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISG_SH_EESG_T1_SH_

NEW

+52

pw::allocator::Hardening::Multiply<>()

NEW

+52

pw::allocator::internal::ControlBlock::Create()

NEW

+52

pw::containers::internal::GenericDequeBase<>::AbsoluteIndexChecked()

NEW

+50

pw::multibuf::size_report::FrameHandlerV2::DoWiden()

NEW

+50

pw::multibuf::v2::BasicMultiBuf<>::PushBack()

NEW

+48

pw::multibuf::v2::BasicMultiBuf<>::PushBack<>()

NEW

+48

pw::multibuf::v2::internal::Entry::GetLength()

NEW

+48

pw::multibuf::v2::internal::Entry::GetOffset()

NEW

+46

pw::multibuf::v2::internal::Entry::IsBoundary()

NEW

+46

pw::multibuf::v2::internal::operator+<>()

NEW

+44

pw::DynamicDeque<>::operator=()

NEW

+42

pw::UniquePtr<>::Reset()

NEW

+40

__atomic_fetch_sub_4

NEW

+40

pw::allocator::Layout::Of<>()

NEW

+40

pw::multibuf::v2::internal::GenericMultiBuf::size()

NEW

+38

pw::multibuf::v2::BasicMultiBuf<>::Insert()

NEW

+38

pw::multibuf::v2::internal::ByteIterator<>::operator ?<>()

NEW

+38

pw::multibuf::v2::internal::GenericMultiBuf::cend()

NEW

+36

_ZNSt3__213move_backwardB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeINS1_8multibuf2v28internal5EntryEtEEEESB_EET0_T_SD_SC_

NEW

+36

_ZNSt3__24moveB9nqn230000IN2pw10containers8internal13DequeIteratorINS1_12DynamicDequeINS1_8multibuf2v28internal5EntryEtEEEESB_EET0_T_SD_SC_

NEW

+36

pw::allocator::internal::ControlBlock::DecrementShared()

NEW

+36

pw::multibuf::v2::internal::BasicByteIterator::deque()

NEW

+36

pw::multibuf::v2::internal::Entry::IsSealed()

NEW

+32

__atomic_load_4

NEW

+32

pw::allocator::ChunkPool

NEW

+32

pw::allocator::Pool

NEW

+32

pw::multibuf::v2::internal::GenericMultiBuf::GenericMultiBuf()

NEW

+30

pw::multibuf::v2::internal::GenericMultiBuf::operator=()

NEW

+28

_ZNSt3__25equalB9nqn230000IN2pw8multibuf2v28internal12ByteIteratorILNS4_10MutabilityE0EEENS_11__wrap_iterIPKSt4byteEEEEbT_SD_T0_SE_

NEW

+28

_ZNSt3__28optionalIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEEEaSB9nqn230000ISC_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ESD_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISI_SC_EE5valuenesZT1_Li0EEE7_ResultINSG_IbXntu9__is_sameSI_SC_EEEENS_4_NotINS_9is_scalarISC_EEEEEENS_16is_constructibleISC_JSH_EEENS_13is_assignableIRSC_SH_EENS_9is_objectISC_EEEE5valueEiE4typeELi0EEERSD_OSH_

NEW

+28

_ZNSt3__28optionalIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEEEaSB9nqn230000ISC_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ESD_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameISI_SC_EE5valuenesZT1_Li0EEE7_ResultINSG_IbXntu9__is_sameSI_SC_EEEENS_4_NotINS_9is_scalarISC_EEEEEENS_16is_constructibleISC_JSH_EEENS_13is_assignableIRSC_SH_EENS_9is_objectISC_EEEE5valueEiE4typeELi0EEERSD_OSH_

NEW

+28

pw::allocator::internal::ControlBlock::~ControlBlock()

NEW

+28

pw::containers::internal::GenericDequeBase<>::MoveAssignIndices()

NEW

+28

pw::multibuf::v2::internal::ByteIterator<>::operator++()

NEW

+28

pw::multibuf::v2::internal::GenericMultiBuf::end()

NEW

+26

pw::multibuf::v2::internal::GenericMultiBuf::cbegin()

NEW

+24

pw::multibuf::size_report::FrameHandlerV2::DoPushBack()

NEW

+24

pw::multibuf::size_report::FrameHandlerV2::DoTruncate()

NEW

+24

pw::multibuf::v2::internal::operator!=()

NEW

+22

_ZN2pw9allocator4Pool10MakeUniqueIA_St4byteTpTnRiJETnNSt3__29enable_ifIX20is_unbounded_array_vIT_EEiE4typeELi0EEENS_9UniquePtrIS8_EEv

NEW

+22

pw::DynamicDeque<>::~DynamicDeque()

NEW

+22

pw::containers::internal::GenericDeque<>::CheckCapacityAdd()

NEW

+22

pw::multibuf::v2::internal::GenericMultiBuf::GetLength()

NEW

+22

pw::multibuf::v2::internal::GenericMultiBuf::GetOffset()

NEW

+22

pw::multibuf::v2::internal::GenericMultiBuf::IsBoundary()

NEW

+20

_ZNSt3__220__optional_move_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EEC2B9nqn230000EOSA_

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw6async215SendReservationINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE5resetB9nqn230000Ev

NEW

+20

_ZNSt3__29__destroyB9nqn230000INS_11__wrap_iterIPN2pw8multibuf2v28internal8InstanceINS4_13BasicMultiBufIJLNS4_8PropertyE2EEEEEEEEEET_SD_SD_

NEW

+20

pw::multibuf::size_report::FrameHandlerV2::GetBegin()

NEW

+20

pw::multibuf::size_report::FrameHandlerV2::GetEnd()

NEW

+20

pw::multibuf::v2::internal::Entry::IsShared()

NEW

+18

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE5resetB9nqn230000Ev

NEW

+18

pw::DynamicDeque<>::try_reserve_exact()

NEW

+18

pw::multibuf::v2::internal::Entry::IsOwned()

NEW

+18

pw::multibuf::v2::internal::GenericMultiBuf::MakeIterator()

NEW

+16

__aeabi_idivmod

NEW

+16

pw::containers::internal::GenericDeque<>::at()

NEW

+16

pw::multibuf::v2::internal::Entry::GetData()

NEW

+16

pw::multibuf::v2::internal::GenericMultiBuf::~GenericMultiBuf()

NEW

+14

_ZNSt3__223__optional_storage_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE11__constructB9nqn230000IJSC_EEEvDpOT_

NEW

+14

_ZNSt3__223__optional_storage_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EE16__construct_fromB9nqn230000INS_20__optional_move_baseIS9_Lb0EEEEEvOT_

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw6async213ReceiveFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw6async215SendReservationINS2_8multibuf2v28internal8InstanceINS6_13BasicMultiBufIJLNS6_8PropertyE2EEEEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseINS_8optionalIN2pw8multibuf2v28internal8InstanceINS4_13BasicMultiBufIJLNS4_8PropertyE2EEEEEEEELb0EED2B9nqn230000Ev

NEW

+14

_ZNSt3__28optionalIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEEEC2B9nqn230000IS9_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitISD_EEEiE4typeELi0EEEOSD_

NEW

+14

pw::allocator::ChunkPool::DoAllocate()

NEW

+14

pw::allocator::internal::BaseManagedPtr::Deallocate()

NEW

+14

pw::multibuf::v2::internal::GenericMultiBuf::begin()

NEW

+12

_ZNSt3__213__atomic_baseIjLb0EE21compare_exchange_weakB9nqn230000ERjjNS_12memory_orderE

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw6async217ReserveSendFutureINS1_8multibuf2v28internal8InstanceINS5_13BasicMultiBufIJLNS5_8PropertyE2EEEEEEEELb0EE11__constructB9nqn230000IJSC_EEEvDpOT_

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEELb0EE11__constructB9nqn230000IJS9_EEEvDpOT_

NEW

+12

_ZNSt3__28optionalINS0_IN2pw8multibuf2v28internal8InstanceINS3_13BasicMultiBufIJLNS3_8PropertyE2EEEEEEEEEC2B9nqn230000ISA_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitISE_EEEiE4typeELi0EEEOSE_

NEW

+12

__aeabi_memclr4

NEW

+12

pw::allocator::ChunkPool::DoDeallocate()

NEW

+12

pw::containers::internal::DequeIterator<>::operator*()

NEW

+12

pw::multibuf::v2::internal::ByteIterator<>::operator+=<>()

NEW

+12

pw::multibuf::v2::internal::GenericMultiBuf::CopyTo()

NEW

+12

pw::multibuf::v2::internal::GenericMultiBuf::IsOwned()

NEW

+10

pw::allocator::ChunkPool::~ChunkPool()

NEW

+10

pw::allocator::internal::BaseManagedPtr::HasCapability()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetControlBlock()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetData()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetDeallocator()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::GetView()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::IsSealed()

NEW

+10

pw::multibuf::v2::internal::GenericMultiBuf::IsShared()

NEW

+8

pw::allocator::internal::BaseManagedPtr::Resize()

NEW

+8

pw::multibuf::size_report::FrameHandlerV2::kLayout

NEW

+8

pw::multibuf::size_report::FrameHandlerV2::~FrameHandlerV2()

NEW

+2

pw::Deallocator::~Deallocator()

NEW

+2

pw::allocator::Pool::~Pool()

+4,448

RAM

DEL

-80

xQueueRegistry

-80