Fix memory leak am: 32f40e1a30 am: 0c6671f06e am: afc2064324
Original change: https://googleplex-android-review.googlesource.com/c/platform/test/mlts/benchmark/+/12468788
Change-Id: I7a85749b29f8a3c3bc1f689ecede353e3abe02f1
diff --git a/src/com/android/nn/benchmark/core/NNTestBase.java b/src/com/android/nn/benchmark/core/NNTestBase.java
index 21f8711..48a934f 100644
--- a/src/com/android/nn/benchmark/core/NNTestBase.java
+++ b/src/com/android/nn/benchmark/core/NNTestBase.java
@@ -32,7 +32,7 @@
import java.util.List;
import java.util.Optional;
-public class NNTestBase {
+public class NNTestBase implements AutoCloseable {
protected static final String TAG = "NN_TESTBASE";
// Used to load the 'native-lib' library on application startup.
@@ -322,4 +322,9 @@
}
return outFileName;
}
+
+ @Override
+ public void close() {
+ destroy();
+ }
}
diff --git a/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java b/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
index e79a8b3..b939b54 100644
--- a/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
+++ b/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
@@ -91,13 +91,14 @@
String useNNAPIDir = useNNAPI? NNAPI_DIR: CPU_DIR;
Log.i(TAG, "Running " + modelName + " in " + useNNAPIDir);
TestModelEntry modelEntry = TestModels.getModelByName(modelName);
- NNTestBase testBase = modelEntry.createNNTestBase(
- useNNAPI, true/*enableIntermediateTensorsDump*/);
- testBase.setupModel(this);
- File outputDir = new File(getFilesDir() + "/" + DUMP_DIR +
- "/" + modelName, useNNAPIDir);
- safeMkdir(outputDir);
- testBase.dumpAllLayers(outputDir, inputAssetIndex, inputAssetSize);
+ try (NNTestBase testBase = modelEntry.createNNTestBase(
+ useNNAPI, true/*enableIntermediateTensorsDump*/)) {
+ testBase.setupModel(this);
+ File outputDir = new File(getFilesDir() + "/" + DUMP_DIR +
+ "/" + modelName, useNNAPIDir);
+ safeMkdir(outputDir);
+ testBase.dumpAllLayers(outputDir, inputAssetIndex, inputAssetSize);
+ }
}
}