/* * Copyright 2015 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.buffer; import java.util.List; /** * Expose metrics for an arena. */ public interface PoolArenaMetric { /** * Returns the number of thread caches backed by this arena. */ int numThreadCaches(); /** * Returns the number of tiny sub-pages for the arena. */ int numTinySubpages(); /** * Returns the number of small sub-pages for the arena. */ int numSmallSubpages(); /** * Returns the number of chunk lists for the arena. */ int numChunkLists(); /** * Returns an unmodifiable {@link List} which holds {@link PoolSubpageMetric}s for tiny sub-pages. */ List<PoolSubpageMetric> tinySubpages(); /** * Returns an unmodifiable {@link List} which holds {@link PoolSubpageMetric}s for small sub-pages. */ List<PoolSubpageMetric> smallSubpages(); /** * Returns an unmodifiable {@link List} which holds {@link PoolChunkListMetric}s. */ List<PoolChunkListMetric> chunkLists(); /** * Return the number of allocations done via the arena. This includes all sizes. */ long numAllocations(); /** * Return the number of tiny allocations done via the arena. */ long numTinyAllocations(); /** * Return the number of small allocations done via the arena. */ long numSmallAllocations(); /** * Return the number of normal allocations done via the arena. */ long numNormalAllocations(); /** * Return the number of huge allocations done via the arena. */ long numHugeAllocations(); /** * Return the number of deallocations done via the arena. This includes all sizes. */ long numDeallocations(); /** * Return the number of tiny deallocations done via the arena. */ long numTinyDeallocations(); /** * Return the number of small deallocations done via the arena. */ long numSmallDeallocations(); /** * Return the number of normal deallocations done via the arena. */ long numNormalDeallocations(); /** * Return the number of huge deallocations done via the arena. */ long numHugeDeallocations(); /** * Return the number of currently active allocations. */ long numActiveAllocations(); /** * Return the number of currently active tiny allocations. */ long numActiveTinyAllocations(); /** * Return the number of currently active small allocations. */ long numActiveSmallAllocations(); /** * Return the number of currently active normal allocations. */ long numActiveNormalAllocations(); /** * Return the number of currently active huge allocations. */ long numActiveHugeAllocations(); /** * Return the number of active bytes that are currently allocated by the arena. */ long numActiveBytes(); }