for (Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { size = adjustForField(size, f);
/** * Returns the shallow instance size in bytes an instance of the given class would occupy. * This works with all conventional classes and primitive types, but not with arrays * (the size then depends on the number of elements and varies from object to object). * * @see #shallowSizeOf(Object) * @throws IllegalArgumentException if {@code clazz} is an array class. */ public static long shallowSizeOfInstance(Class<?> clazz) { if (clazz.isArray()) throw new IllegalArgumentException("This method does not work with array classes."); if (clazz.isPrimitive()) return primitiveSizes.get(clazz); long size = NUM_BYTES_OBJECT_HEADER; // Walk type hierarchy for (;clazz != null; clazz = clazz.getSuperclass()) { final Field[] fields = clazz.getDeclaredFields(); for (Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { size = adjustForField(size, f); } } } return alignObjectSize(size); }
for (Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { size = adjustForField(size, f);
for (Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { size = adjustForField(size, f);
/** * Create a cached information about shallow size and reference fields for * a given class. */ private static ClassCache createCacheEntry(final Class<?> clazz) { ClassCache cachedInfo; long shallowInstanceSize = NUM_BYTES_OBJECT_HEADER; final ArrayList<Field> referenceFields = new ArrayList<Field>(32); for (Class<?> c = clazz; c != null; c = c.getSuperclass()) { final Field[] fields = c.getDeclaredFields(); for (final Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { shallowInstanceSize = adjustForField(shallowInstanceSize, f); if (!f.getType().isPrimitive()) { f.setAccessible(true); referenceFields.add(f); } } } } cachedInfo = new ClassCache( alignObjectSize(shallowInstanceSize), referenceFields.toArray(new Field[referenceFields.size()])); return cachedInfo; }
for (Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { size = adjustForField(size, f);
for (Field f : fields) { if (!Modifier.isStatic(f.getModifiers())) { size = adjustForField(size, f);