public final class ByteQuadsCanonicalizer
extends java.lang.Object
BytesToNameCanonicalizer
which aims at more localized
memory access due to flattening of name quad data.
Performance improvement modest for simple JSON document data binding (maybe 3%),
but should help more for larger symbol tables, or for binary formats like Smile.
Hash area is divided into 4 sections:
hash (LSB) >> 1
hash (LSB) >> 2
int
s, where 1 - 3 ints contain 1 - 12
UTF-8 encoded bytes of name (null-padded), and last int is offset in
_names
that contains actual name Strings.Modifier and Type | Method and Description |
---|---|
java.lang.String |
addName(java.lang.String name,
int q1) |
java.lang.String |
addName(java.lang.String name,
int[] q,
int qlen) |
java.lang.String |
addName(java.lang.String name,
int q1,
int q2) |
java.lang.String |
addName(java.lang.String name,
int q1,
int q2,
int q3) |
int |
bucketCount()
Returns number of primary slots table has currently
|
int |
calcHash(int q1) |
int |
calcHash(int[] q,
int qlen) |
int |
calcHash(int q1,
int q2) |
int |
calcHash(int q1,
int q2,
int q3) |
static ByteQuadsCanonicalizer |
createRoot()
Factory method to call to create a symbol table instance with a
randomized seed value.
|
java.lang.String |
findName(int q1) |
java.lang.String |
findName(int[] q,
int qlen) |
java.lang.String |
findName(int q1,
int q2) |
java.lang.String |
findName(int q1,
int q2,
int q3) |
int |
hashSeed() |
ByteQuadsCanonicalizer |
makeChild(int flags)
Factory method used to create actual symbol table instance to
use for parsing.
|
boolean |
maybeDirty()
Method called to check to quickly see if a child symbol table
may have gotten additional entries.
|
int |
primaryCount()
Method mostly needed by unit tests; calculates number of
entries that are in the primary slot set.
|
void |
release()
Method called by the using code to indicate it is done with this instance.
|
int |
secondaryCount()
Method mostly needed by unit tests; calculates number of entries
in secondary buckets
|
int |
size() |
int |
spilloverCount()
Method mostly needed by unit tests; calculates number of entries
in shared spillover area
|
int |
tertiaryCount()
Method mostly needed by unit tests; calculates number of entries
in tertiary buckets
|
java.lang.String |
toString() |
int |
totalCount() |
public static ByteQuadsCanonicalizer createRoot()
public ByteQuadsCanonicalizer makeChild(int flags)
public void release()
public int size()
public int bucketCount()
public boolean maybeDirty()
public int hashSeed()
public int primaryCount()
public int secondaryCount()
public int tertiaryCount()
public int spilloverCount()
public int totalCount()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String findName(int q1)
public java.lang.String findName(int q1, int q2)
public java.lang.String findName(int q1, int q2, int q3)
public java.lang.String findName(int[] q, int qlen)
public java.lang.String addName(java.lang.String name, int q1)
public java.lang.String addName(java.lang.String name, int q1, int q2)
public java.lang.String addName(java.lang.String name, int q1, int q2, int q3)
public java.lang.String addName(java.lang.String name, int[] q, int qlen)
public int calcHash(int q1)
public int calcHash(int q1, int q2)
public int calcHash(int q1, int q2, int q3)
public int calcHash(int[] q, int qlen)
Copyright © 2010 - 2020 Adobe. All Rights Reserved