def collect_data()

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


    def collect_data(self):
        subprocess.call(["sudo", "bash", self.lazybox_path + "/scripts/zram_swap.sh", "4G"])
        index_dict = dict()
        for key, value in self.search_param.items():
            index_dict[key] = [0, len(value)]
        store_metrics = []

        action = self.search_param["action"][0]

        for min_size in self.search_param["min_size"]:
            for max_size in self.search_param["max_size"]:
                for min_freq in self.search_param["min_freq"]:
                    for max_freq in self.search_param["max_freq"]:
                        for min_age in self.search_param["min_age"]:
                            for max_age in self.search_param["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/pso_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)

        self.workload_info.append(store_metrics)