1 /* 2 * Copyright 2015 The Netty Project 3 * 4 * The Netty Project licenses this file to you under the Apache License, 5 * version 2.0 (the "License"); you may not use this file except in compliance 6 * with the License. You may obtain a copy of the License at: 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations 14 * under the License. 15 */ 16 17 package io.netty.buffer; 18 19 import java.util.List; 20 21 /** 22 * Expose metrics for an arena. 23 */ 24 public interface PoolArenaMetric { 25 26 /** 27 * Returns the number of tiny sub-pages for the arena. 28 */ 29 int numTinySubpages(); 30 31 /** 32 * Returns the number of small sub-pages for the arena. 33 */ 34 int numSmallSubpages(); 35 36 /** 37 * Returns the number of chunk lists for the arena. 38 */ 39 int numChunkLists(); 40 41 /** 42 * Returns an unmodifiable {@link List} which holds {@link PoolSubpageMetric}s for tiny sub-pages. 43 */ 44 List<PoolSubpageMetric> tinySubpages(); 45 46 /** 47 * Returns an unmodifiable {@link List} which holds {@link PoolSubpageMetric}s for small sub-pages. 48 */ 49 List<PoolSubpageMetric> smallSubpages(); 50 51 /** 52 * Returns an unmodifiable {@link List} which holds {@link PoolChunkListMetric}s. 53 */ 54 List<PoolChunkListMetric> chunkLists(); 55 56 /** 57 * Return the number of allocations done via the arena. This includes all sizes. 58 */ 59 long numAllocations(); 60 61 /** 62 * Return the number of tiny allocations done via the arena. 63 */ 64 long numTinyAllocations(); 65 66 /** 67 * Return the number of small allocations done via the arena. 68 */ 69 long numSmallAllocations(); 70 71 /** 72 * Return the number of normal allocations done via the arena. 73 */ 74 long numNormalAllocations(); 75 76 /** 77 * Return the number of huge allocations done via the arena. 78 */ 79 long numHugeAllocations(); 80 81 /** 82 * Return the number of deallocations done via the arena. This includes all sizes. 83 */ 84 long numDeallocations(); 85 86 /** 87 * Return the number of tiny deallocations done via the arena. 88 */ 89 long numTinyDeallocations(); 90 91 /** 92 * Return the number of small deallocations done via the arena. 93 */ 94 long numSmallDeallocations(); 95 96 /** 97 * Return the number of normal deallocations done via the arena. 98 */ 99 long numNormalDeallocations(); 100 101 /** 102 * Return the number of huge deallocations done via the arena. 103 */ 104 long numHugeDeallocations(); 105 106 /** 107 * Return the number of currently active allocations. 108 */ 109 long numActiveAllocations(); 110 111 /** 112 * Return the number of currently active tiny allocations. 113 */ 114 long numActiveTinyAllocations(); 115 116 /** 117 * Return the number of currently active small allocations. 118 */ 119 long numActiveSmallAllocations(); 120 121 /** 122 * Return the number of currently active normal allocations. 123 */ 124 long numActiveNormalAllocations(); 125 126 /** 127 * Return the number of currently active huge allocations. 128 */ 129 long numActiveHugeAllocations(); 130 131 /** 132 * Return the number of active bytes that are currently allocated by the arena. 133 */ 134 long numActiveBytes(); 135 }