static long estimateWebBotSize(O o) { Collection fields = fields(o); new L l; for (S field : fields) { if (sizeCalculation_shouldIgnoreProgramField(field)) continue; O value = get(o, field); if (value == null) continue; l.add(value); } O[] array = asObjectArray(l); new guessDeepObjectSize_recursive_Data data; data.seen.add(o); ret guessDeepObjectSize_recursive(data, array)-inMemorySizeOfArray(array)+unsafe_sizeOf(o); }