load request rate plot data from C++ computation Args: datapath: path to the reqRate data file Return: req_rate_list: list of request rate
(
datapath: str,
)
| 22 | |
| 23 | |
| 24 | def _load_req_rate_data( |
| 25 | datapath: str, |
| 26 | ) -> Tuple[List[float], List[float], List[float], List[float], int]: |
| 27 | """load request rate plot data from C++ computation |
| 28 | Args: |
| 29 | datapath: path to the reqRate data file |
| 30 | Return: |
| 31 | req_rate_list: list of request rate |
| 32 | """ |
| 33 | |
| 34 | ifile = open(datapath) |
| 35 | data_line = ifile.readline() |
| 36 | |
| 37 | line = ifile.readline() |
| 38 | assert ( |
| 39 | "# req rate - time window" in line |
| 40 | ), "the input file might not be reqRate data file" |
| 41 | time_window = int(line.split()[6].strip("()s ")) |
| 42 | req_rate_list = [float(i) for i in ifile.readline().split(",")[:-1]] |
| 43 | |
| 44 | assert "byte rate" in ifile.readline() |
| 45 | byte_rate_list = [float(i) for i in ifile.readline().split(",")[:-1]] |
| 46 | |
| 47 | assert "obj rate" in ifile.readline() |
| 48 | obj_rate_list = [float(i) for i in ifile.readline().split(",")[:-1]] |
| 49 | |
| 50 | assert "first seen obj (cold miss) rate" in ifile.readline() |
| 51 | new_obj_rate_list = [float(i) for i in ifile.readline().split(",")[:-1]] |
| 52 | |
| 53 | ifile.close() |
| 54 | |
| 55 | assert len(req_rate_list) == len(byte_rate_list) |
| 56 | assert len(req_rate_list) == len(obj_rate_list) == len(new_obj_rate_list) |
| 57 | |
| 58 | return req_rate_list, byte_rate_list, obj_rate_list, new_obj_rate_list, time_window |
| 59 | |
| 60 | |
| 61 | def plot_req_rate(datapath: str, figname_prefix: str = ""): |