Home / Function/ size2SizeIdx() — netty Function Reference

size2SizeIdx() — netty Function Reference

Architecture documentation for the size2SizeIdx() function in SizeClasses.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  84194f88_a180_4e4f_24f0_73236d305f6d["size2SizeIdx()"]
  d1cbce7b_bd0a_5553_8e62_6deeb38137ff["SizeClasses"]
  84194f88_a180_4e4f_24f0_73236d305f6d -->|defined in| d1cbce7b_bd0a_5553_8e62_6deeb38137ff
  e527e111_d931_4c43_c84e_902b0e4264cf["alignSizeIfNeeded()"]
  84194f88_a180_4e4f_24f0_73236d305f6d -->|calls| e527e111_d931_4c43_c84e_902b0e4264cf
  style 84194f88_a180_4e4f_24f0_73236d305f6d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

buffer/src/main/java/io/netty/buffer/SizeClasses.java lines 315–343

    @Override
    public int size2SizeIdx(int size) {
        if (size == 0) {
            return 0;
        }
        if (size > chunkSize) {
            return nSizes;
        }

        size = alignSizeIfNeeded(size, directMemoryCacheAlignment);

        if (size <= lookupMaxSize) {
            //size-1 / MIN_TINY
            return size2idxTab[size - 1 >> LOG2_QUANTUM];
        }

        int x = log2((size << 1) - 1);
        int shift = x < LOG2_SIZE_CLASS_GROUP + LOG2_QUANTUM + 1
                ? 0 : x - (LOG2_SIZE_CLASS_GROUP + LOG2_QUANTUM);

        int group = shift << LOG2_SIZE_CLASS_GROUP;

        int log2Delta = x < LOG2_SIZE_CLASS_GROUP + LOG2_QUANTUM + 1
                ? LOG2_QUANTUM : x - LOG2_SIZE_CLASS_GROUP - 1;

        int mod = size - 1 >> log2Delta & (1 << LOG2_SIZE_CLASS_GROUP) - 1;

        return group + mod;
    }

Domain

Subdomains

Frequently Asked Questions

What does size2SizeIdx() do?
size2SizeIdx() is a function in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/SizeClasses.java.
Where is size2SizeIdx() defined?
size2SizeIdx() is defined in buffer/src/main/java/io/netty/buffer/SizeClasses.java at line 315.
What does size2SizeIdx() call?
size2SizeIdx() calls 1 function(s): alignSizeIfNeeded.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free