Report extra memory more (#4289)

* Report memory allocated in fetch

* Memory size reporting to `Headers`

* Fixup memory reporting allocator

* Make these tests do more

* cleanup some of this

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
This commit is contained in:
Jarred Sumner
2023-08-24 19:39:00 -07:00
committed by GitHub
parent 097ae4e982
commit 8a48e8bb0b
18 changed files with 320 additions and 104 deletions

View File

@@ -77,6 +77,25 @@ String HTTPHeaderMap::get(const String& name) const
return getUncommonHeader(name);
}
size_t HTTPHeaderMap::memoryCost() const
{
size_t cost = m_commonHeaders.size() * sizeof(CommonHeader);
cost += m_uncommonHeaders.size() * sizeof(UncommonHeader);
cost += m_setCookieHeaders.size() * sizeof(String);
for (auto& header : m_commonHeaders)
cost += header.value.sizeInBytes();
for (auto& header : m_uncommonHeaders) {
cost += header.key.sizeInBytes();
cost += header.value.sizeInBytes();
}
for (auto& header : m_setCookieHeaders)
cost += header.sizeInBytes();
return cost;
}
String HTTPHeaderMap::getUncommonHeader(const String& name) const
{
auto index = m_uncommonHeaders.findIf([&](auto& header) {