private long guessArraySize(Object obj) { long size = PrimitiveType.getArraySize(); int length = Array.getLength(obj); if (length != 0) { Class<?> arrayElementClazz = obj.getClass().getComponentType(); if (arrayElementClazz.isPrimitive()) { size += length * PrimitiveType.forType(arrayElementClazz).getSize(); } else { size += length * PrimitiveType.getReferenceSize(); } } if ((size % CURRENT_JVM_INFORMATION.getObjectAlignment()) != 0) { size += CURRENT_JVM_INFORMATION.getObjectAlignment() - (size % CURRENT_JVM_INFORMATION.getObjectAlignment()); } return Math.max(size, CURRENT_JVM_INFORMATION.getMinimumObjectSize()); } }
/** * Finds the matching PrimitiveType for a type * @param type the type to find the PrimitiveType for * @return the PrimitiveType instance or null if none found */ public static PrimitiveType forType(final Class<?> type) { for (PrimitiveType primitiveType : values()) { if (primitiveType.getType() == type) { return primitiveType; } } return null; } }
switch (PrimitiveType.forType(f.getType())) { case BOOLEAN: case BYTE: if (doubles > 0 && (size % PrimitiveType.LONG.getSize()) != 0) { long length = PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); size += PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); while (length >= PrimitiveType.INT.getSize() && words > 0) { length -= PrimitiveType.INT.getSize(); words--; while (length >= PrimitiveType.SHORT.getSize() && shorts > 0) { length -= PrimitiveType.SHORT.getSize(); shorts--; while (length >= PrimitiveType.BYTE.getSize() && bytes > 0) { length -= PrimitiveType.BYTE.getSize(); bytes--; while (length >= PrimitiveType.getReferenceSize() && oops > 0) { length -= PrimitiveType.getReferenceSize(); oops--; size += PrimitiveType.DOUBLE.getSize() * doubles; size += PrimitiveType.INT.getSize() * words; size += PrimitiveType.SHORT.getSize() * shorts; size += PrimitiveType.BYTE.getSize() * bytes;
/** * The size on an array * @return size in bytes */ public static long getArraySize() { return CURRENT_JVM_INFORMATION.getObjectHeaderSize() + INT.getSize(); }
switch (PrimitiveType.forType(f.getType())) { case BOOLEAN: case BYTE: if (doubles > 0 && (size % PrimitiveType.LONG.getSize()) != 0) { long length = PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); size += PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); while (length >= PrimitiveType.INT.getSize() && words > 0) { length -= PrimitiveType.INT.getSize(); words--; while (length >= PrimitiveType.SHORT.getSize() && shorts > 0) { length -= PrimitiveType.SHORT.getSize(); shorts--; while (length >= PrimitiveType.BYTE.getSize() && bytes > 0) { length -= PrimitiveType.BYTE.getSize(); bytes--; while (length >= PrimitiveType.getReferenceSize() && oops > 0) { length -= PrimitiveType.getReferenceSize(); oops--; size += PrimitiveType.DOUBLE.getSize() * doubles; size += PrimitiveType.INT.getSize() * words; size += PrimitiveType.SHORT.getSize() * shorts; size += PrimitiveType.BYTE.getSize() * bytes;
/** * The size on an array * @return size in bytes */ public static long getArraySize() { return CURRENT_JVM_INFORMATION.getObjectHeaderSize() + INT.getSize(); }
private long guessArraySize(Object obj) { long size = PrimitiveType.getArraySize(); int length = Array.getLength(obj); if (length != 0) { Class<?> arrayElementClazz = obj.getClass().getComponentType(); if (arrayElementClazz.isPrimitive()) { size += length * PrimitiveType.forType(arrayElementClazz).getSize(); } else { size += length * PrimitiveType.getReferenceSize(); } } if ((size % CURRENT_JVM_INFORMATION.getObjectAlignment()) != 0) { size += CURRENT_JVM_INFORMATION.getObjectAlignment() - (size % CURRENT_JVM_INFORMATION.getObjectAlignment()); } return Math.max(size, CURRENT_JVM_INFORMATION.getMinimumObjectSize()); } }
switch (PrimitiveType.forType(f.getType())) { case BOOLEAN: case BYTE: if (doubles > 0 && (size % PrimitiveType.LONG.getSize()) != 0) { long length = PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); size += PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); while (length >= PrimitiveType.INT.getSize() && words > 0) { length -= PrimitiveType.INT.getSize(); words--; while (length >= PrimitiveType.SHORT.getSize() && shorts > 0) { length -= PrimitiveType.SHORT.getSize(); shorts--; while (length >= PrimitiveType.BYTE.getSize() && bytes > 0) { length -= PrimitiveType.BYTE.getSize(); bytes--; while (length >= PrimitiveType.getReferenceSize() && oops > 0) { length -= PrimitiveType.getReferenceSize(); oops--; size += PrimitiveType.DOUBLE.getSize() * doubles; size += PrimitiveType.INT.getSize() * words; size += PrimitiveType.SHORT.getSize() * shorts; size += PrimitiveType.BYTE.getSize() * bytes;
/** * Finds the matching PrimitiveType for a type * @param type the type to find the PrimitiveType for * @return the PrimitiveType instance or null if none found */ public static PrimitiveType forType(final Class<?> type) { for (PrimitiveType primitiveType : values()) { if (primitiveType.getType() == type) { return primitiveType; } } return null; } }
/** * The size on an array * @return size in bytes */ public static long getArraySize() { return CURRENT_JVM_INFORMATION.getObjectHeaderSize() + INT.getSize(); }
private long guessArraySize(Object obj) { long size = PrimitiveType.getArraySize(); int length = Array.getLength(obj); if (length != 0) { Class<?> arrayElementClazz = obj.getClass().getComponentType(); if (arrayElementClazz.isPrimitive()) { size += length * PrimitiveType.forType(arrayElementClazz).getSize(); } else { size += length * PrimitiveType.getReferenceSize(); } } if ((size % CURRENT_JVM_INFORMATION.getObjectAlignment()) != 0) { size += CURRENT_JVM_INFORMATION.getObjectAlignment() - (size % CURRENT_JVM_INFORMATION.getObjectAlignment()); } return Math.max(size, CURRENT_JVM_INFORMATION.getMinimumObjectSize()); } }
switch (PrimitiveType.forType(f.getType())) { case BOOLEAN: case BYTE: if (doubles > 0 && (size % PrimitiveType.LONG.getSize()) != 0) { long length = PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); size += PrimitiveType.LONG.getSize() - (size % PrimitiveType.LONG.getSize()); while (length >= PrimitiveType.INT.getSize() && words > 0) { length -= PrimitiveType.INT.getSize(); words--; while (length >= PrimitiveType.SHORT.getSize() && shorts > 0) { length -= PrimitiveType.SHORT.getSize(); shorts--; while (length >= PrimitiveType.BYTE.getSize() && bytes > 0) { length -= PrimitiveType.BYTE.getSize(); bytes--; while (length >= PrimitiveType.getReferenceSize() && oops > 0) { length -= PrimitiveType.getReferenceSize(); oops--; size += PrimitiveType.DOUBLE.getSize() * doubles; size += PrimitiveType.INT.getSize() * words; size += PrimitiveType.SHORT.getSize() * shorts; size += PrimitiveType.BYTE.getSize() * bytes;
/** * Finds the matching PrimitiveType for a type * @param type the type to find the PrimitiveType for * @return the PrimitiveType instance or null if none found */ public static PrimitiveType forType(final Class<?> type) { for (PrimitiveType primitiveType : values()) { if (primitiveType.getType() == type) { return primitiveType; } } return null; } }
/** * The size on an array * @return size in bytes */ public static long getArraySize() { return CURRENT_JVM_INFORMATION.getObjectHeaderSize() + INT.getSize(); }
private long guessArraySize(Object obj) { long size = PrimitiveType.getArraySize(); int length = Array.getLength(obj); if (length != 0) { Class<?> arrayElementClazz = obj.getClass().getComponentType(); if (arrayElementClazz.isPrimitive()) { size += length * PrimitiveType.forType(arrayElementClazz).getSize(); } else { size += length * PrimitiveType.getReferenceSize(); } } if ((size % CURRENT_JVM_INFORMATION.getObjectAlignment()) != 0) { size += CURRENT_JVM_INFORMATION.getObjectAlignment() - (size % CURRENT_JVM_INFORMATION.getObjectAlignment()); } return Math.max(size, CURRENT_JVM_INFORMATION.getMinimumObjectSize()); } }
/** * Finds the matching PrimitiveType for a type * @param type the type to find the PrimitiveType for * @return the PrimitiveType instance or null if none found */ public static PrimitiveType forType(final Class<?> type) { for (PrimitiveType primitiveType : values()) { if (primitiveType.getType() == type) { return primitiveType; } } return null; } }