diff --git a/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/APLCache.java b/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/APLCache.java
index ad9c541..ed137b7 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/APLCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/APLCache.java
@@ -78,6 +78,8 @@ public class APLCache {
LOGGER.info(MessageFormat.format("Recommending TTL per method for {0} methods", this.methods.size()));
removeSingleOccurrences();
calculateMetrics();
+ this.methods.forEach(Method::removeNotRecommendedInputs);
+ this.methods.removeIf(method -> method.getEstimatedSavedTime() == 0);
calculateThresholds(kStdDev);
filterCacheableInputs(kStdDev);
diff --git a/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/metadata/Method.java b/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/metadata/Method.java
index 02333a1..5ea9abf 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/metadata/Method.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/aplcachetf/extension/metadata/Method.java
@@ -85,6 +85,14 @@ public class Method {
if (removedOccurrences > 0) LOGGER.info(MessageFormat.format("\tRemoved {0} of {1} inputs from method {2}", removedOccurrences, initialCountOfOccurrences, this.name));
}
+ public void removeNotRecommendedInputs() {
+ if (this.groupsOfOccurrences == null) throw new RuntimeException("Recommendations not called");
+ int initialCountOfOccurrences = this.groupsOfOccurrences.size();
+ this.groupsOfOccurrences.removeIf(it -> it.getMetrics().getPareto().getBestMetrics().getSavedTime() == 0);
+ int removedOccurrences = initialCountOfOccurrences - this.groupsOfOccurrences.size();
+ if (removedOccurrences > 0) LOGGER.info(MessageFormat.format("\tRemoved {0} of {1} inputs from method {2}", removedOccurrences, initialCountOfOccurrences, this.name));
+ }
+
public void calculateMetrics() {
if (this.groupsOfOccurrences == null) groupByInput();
groupsOfOccurrences().forEach(GroupOfOccurrences::calculateMetrics);