def collect_data()

in scheme_adapters/polyfit_adapter/polyfit_adapter.py [0:0]


    def collect_data(self, search_space):
        subprocess.call(["sudo", "bash", self.lazybox_path + "/scripts/zram_swap.sh", "4G"])
        store_metrics = []
        action = search_space["action"][0]

        for min_size in search_space["min_size"]:
            for max_size in search_space["max_size"]:
                for min_freq in search_space["min_freq"]:
                    for max_freq in search_space["max_freq"]:
                        for min_age in search_space["min_age"]:
                            for max_age in search_space["max_age"]:
                                scheme_list = [min_size, max_size, min_freq, max_freq, min_age, max_age]

                                if self.cache_read_enabled:
                                    stored_value = self.cache_instance.get(scheme_list + [action])
                                    if stored_value != -1:
                                        store_metrics.append((stored_value[1], scheme_list))
                                        continue

                                if type(min_size) == int:
                                    min_size = str(min_size) + "B"
                                if type(max_age) == int:
                                    max_age = str(max_age) + "us"
                                if type(max_size) == int:
                                    max_size = str(max_size) + "B"
                                if type(min_age) == int:
                                    min_age = str(min_age) + "us"

                                scheme = min_size + "\t" + max_size + "\t"
                                scheme += str(min_freq) + "\t" + str(max_freq) + "\t"
                                scheme += min_age + "\t" + max_age + "\t" + action

                                file_name = self.damoos_path + "/scheme_adapters/polyfit_adapter/scheme"
                                scheme_file = open(file_name, "w")
                                scheme_file.write(scheme)
                                scheme_file.close()
                                pid = self.run_workload()
                                subprocess.Popen(
                                    ["sudo", "python3", self.damos_path, "schemes", "--schemes", file_name, str(pid)])
                                collected_metric = self.get_metric(pid, self.metrics)
                                store_metrics.append((collected_metric, scheme_list))
                                if self.cache_write_enabled:
                                    self.cache_instance.store(scheme_list + [action], collected_metric)
        return store_metrics