ResourceUsageData.h [plain text]
#pragma once
#if ENABLE(RESOURCE_USAGE)
#include <array>
#include <wtf/MonotonicTime.h>
namespace WebCore {
namespace MemoryCategory {
static const unsigned bmalloc = 0;
static const unsigned LibcMalloc = 1;
static const unsigned JSJIT = 2;
static const unsigned WebAssembly = 3;
static const unsigned Images = 4;
static const unsigned GCHeap = 5;
static const unsigned GCOwned = 6;
static const unsigned Other = 7;
static const unsigned Layers = 8;
static const unsigned NumberOfCategories = 9;
}
struct MemoryCategoryInfo {
MemoryCategoryInfo() { } MemoryCategoryInfo(unsigned category, bool subcategory = false)
: isSubcategory(subcategory)
, type(category)
{
}
size_t totalSize() const { return dirtySize + externalSize; }
size_t dirtySize { 0 };
size_t reclaimableSize { 0 };
size_t externalSize { 0 };
bool isSubcategory { false };
unsigned type { MemoryCategory::NumberOfCategories };
};
struct ResourceUsageData {
ResourceUsageData();
ResourceUsageData(const ResourceUsageData& data);
float cpu { 0 };
size_t totalDirtySize { 0 };
size_t totalExternalSize { 0 };
std::array<MemoryCategoryInfo, MemoryCategory::NumberOfCategories> categories;
MonotonicTime timeOfNextEdenCollection { MonotonicTime::nan() };
MonotonicTime timeOfNextFullCollection { MonotonicTime::nan() };
};
}
#endif // ResourceUsageData_h