LUCENE-9639: Implements SimpleTextVectorReader#ramBytesUsed (#2433)



* Use single class imports
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorReader.java
index 15603c1..1ef0200 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorReader.java
@@ -40,6 +40,7 @@
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.BytesRefBuilder;
 import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.RamUsageEstimator;
 import org.apache.lucene.util.StringHelper;
 
 /**
@@ -49,6 +50,10 @@
  * @lucene.experimental
  */
 public class SimpleTextVectorReader extends VectorReader {
+  // shallowSizeOfInstance for fieldEntries map is included in ramBytesUsed() calculation
+  private static final long BASE_RAM_BYTES_USED =
+      RamUsageEstimator.shallowSizeOfInstance(SimpleTextVectorReader.class)
+          + RamUsageEstimator.shallowSizeOfInstance(BytesRef.class);
 
   private static final BytesRef EMPTY = new BytesRef("");
 
@@ -174,7 +179,16 @@
 
   @Override
   public long ramBytesUsed() {
-    return 0;
+    // mirror implementation of Lucene90VectorReader#ramBytesUsed
+    long totalBytes = BASE_RAM_BYTES_USED;
+    totalBytes += RamUsageEstimator.sizeOf(scratch.bytes());
+    totalBytes +=
+        RamUsageEstimator.sizeOfMap(
+            fieldEntries, RamUsageEstimator.shallowSizeOfInstance(FieldEntry.class));
+    for (FieldEntry entry : fieldEntries.values()) {
+      totalBytes += RamUsageEstimator.sizeOf(entry.ordToDoc);
+    }
+    return totalBytes;
   }
 
   @Override