def __init__(self, ip, root_dir='/tmp/bench_dialog'): self.root_dir = root_dir self.ip = ip self.client = LightClient( ip=self.ip) # ROOT DIRECTORY should be set here too self.log = LogWatchDialog( ip=self.ip, root_dir=self.root_dir) # ROOT directory should be said her self.record = False self.receive = False self.printer = False self.store = False self.files = []
def __init__(self, ip, root_dir = '/tmp/bench_dialog'): self.root_dir = root_dir self.ip = ip self.client = LightClient(ip = self.ip) # ROOT DIRECTORY should be set here too self.log = LogWatchDialog(ip = self.ip, root_dir = self.root_dir) # ROOT directory should be said her self.record = False self.receive = False self.printer = False self.store = False self.files = []
class DialogBench(object): def __init__(self, ip, root_dir = '/tmp/bench_dialog'): self.root_dir = root_dir self.ip = ip self.client = LightClient(ip = self.ip) # ROOT DIRECTORY should be set here too self.log = LogWatchDialog(ip = self.ip, root_dir = self.root_dir) # ROOT directory should be said her self.record = False self.receive = False self.printer = False self.store = False self.files = [] def profile_compilation_performance(self, testID, visu = False): self.files = [] self.log.start_watch() self.start_store(testID) self.testID = testID if visu: self.start_display() def get_compilation_performance_results(self): self.log.stop_watch() self.log.dump_logs(self.testID) self.stop_store() results = [ self.log.get_load_time(), self.log.get_bundle_compile_time('welcome'), self.log.get_model_compile_time('welcome'), self.log.get_reco_compile_time('welcome', 'Japanese'), self.log.get_reco_compile_time('welcome', 'English'), self.get_naoqiservice_VmRSS_diff(), self.get_naoqiservice_VmSize_diff(), self.get_cpu_lavg1_max(), self.get_cpu_iotime_mean(), self.get_cpu_majflt_sum(), self.get_naoqiservice_stime_mean(), self.get_naoqiservice_utime_mean(), ] self.stop_display() self.testID = 'none' return results def start_display(self): if not self.record: self._start_record() if not self.receive: self.client.start_receive() if not self.printer: self.client.start_print() self.record = True self.receive = True self.printer = True def stop_display(self): if self.printer: self.client.stop_print() self.printer = False if not self._check_action(): self._stop_record() self.client.stop_process() self.receive = False self.record = False def start_store(self, dirname = 'remote_cpu'): if not self.record: self._start_record() if not self.receive: self.client.start_receive() if not self.store: self.files = self.client.start_store(dirname = dirname) self.store = True self.record = True self.receive = True def stop_store(self): if self.store: self.client.stop_store() self.store = False if not self._check_action(): self._stop_record() self.client.stop_process() self.receive = False self.record = False def get_naoqiservice_VmRSS_diff(self): try: data = self.get_data('naoqi-service', 'VmRSS') result = data[-1] - data[0] except Exception: return None return result def get_naoqiservice_VmSize_diff(self): try: data = self.get_data('naoqi-service', 'VmSize') result = data[-1] - data[0] except Exception: return None return result def get_naoqiservice_utime_mean(self): try: data = self.get_data('naoqi-service', 'utime') result = np.mean(data) except Exception: return None return result def get_naoqiservice_stime_mean(self): try: data = self.get_data('naoqi-service', 'stime') result = np.mean(data) except Exception: return None return result def get_cpu_iotime_mean(self): try: data = self.get_data('system', 'io_time') result = np.mean(data) except Exception: return None return result def get_cpu_lavg1_max(self): try: data = self.get_data('system', 'lavg_1') result = np.max(data) except Exception: return None return result def get_cpu_majflt_sum(self): try: data = self.get_data('naoqi-service', 'majflt') result = np.sum(data) except Exception: return None return result ### ### Helpers ### def _start_record(self): self.client.start_record('system', 'system') self.client.start_record('process', 'naoqi-service') def _stop_record(self): self.client.stop_record('system', 'system') self.client.stop_record('process', 'naoqi-service') def _check_action(self): return self.printer or self.store def get_data(self, target, field): try: for files in self.files: if os.path.basename(files) == target: with open(files) as csvfile: reader = csv.DictReader(csvfile) result = [] for row in reader: result.append(float(row[field])) return result except AttributeError as e: return None
class DialogBench(object): def __init__(self, ip, root_dir='/tmp/bench_dialog'): self.root_dir = root_dir self.ip = ip self.client = LightClient( ip=self.ip) # ROOT DIRECTORY should be set here too self.log = LogWatchDialog( ip=self.ip, root_dir=self.root_dir) # ROOT directory should be said her self.record = False self.receive = False self.printer = False self.store = False self.files = [] def profile_compilation_performance(self, testID, visu=False): self.files = [] self.log.start_watch() self.start_store(testID) self.testID = testID if visu: self.start_display() def get_compilation_performance_results(self): self.log.stop_watch() self.log.dump_logs(self.testID) self.stop_store() results = [ self.log.get_load_time(), self.log.get_bundle_compile_time('welcome'), self.log.get_model_compile_time('welcome'), self.log.get_reco_compile_time('welcome', 'Japanese'), self.log.get_reco_compile_time('welcome', 'English'), self.get_naoqiservice_VmRSS_diff(), self.get_naoqiservice_VmSize_diff(), self.get_cpu_lavg1_max(), self.get_cpu_iotime_mean(), self.get_cpu_majflt_sum(), self.get_naoqiservice_stime_mean(), self.get_naoqiservice_utime_mean(), ] self.stop_display() self.testID = 'none' return results def start_display(self): if not self.record: self._start_record() if not self.receive: self.client.start_receive() if not self.printer: self.client.start_print() self.record = True self.receive = True self.printer = True def stop_display(self): if self.printer: self.client.stop_print() self.printer = False if not self._check_action(): self._stop_record() self.client.stop_process() self.receive = False self.record = False def start_store(self, dirname='remote_cpu'): if not self.record: self._start_record() if not self.receive: self.client.start_receive() if not self.store: self.files = self.client.start_store(dirname=dirname) self.store = True self.record = True self.receive = True def stop_store(self): if self.store: self.client.stop_store() self.store = False if not self._check_action(): self._stop_record() self.client.stop_process() self.receive = False self.record = False def get_naoqiservice_VmRSS_diff(self): try: data = self.get_data('naoqi-service', 'VmRSS') result = data[-1] - data[0] except Exception: return None return result def get_naoqiservice_VmSize_diff(self): try: data = self.get_data('naoqi-service', 'VmSize') result = data[-1] - data[0] except Exception: return None return result def get_naoqiservice_utime_mean(self): try: data = self.get_data('naoqi-service', 'utime') result = np.mean(data) except Exception: return None return result def get_naoqiservice_stime_mean(self): try: data = self.get_data('naoqi-service', 'stime') result = np.mean(data) except Exception: return None return result def get_cpu_iotime_mean(self): try: data = self.get_data('system', 'io_time') result = np.mean(data) except Exception: return None return result def get_cpu_lavg1_max(self): try: data = self.get_data('system', 'lavg_1') result = np.max(data) except Exception: return None return result def get_cpu_majflt_sum(self): try: data = self.get_data('naoqi-service', 'majflt') result = np.sum(data) except Exception: return None return result ### ### Helpers ### def _start_record(self): self.client.start_record('system', 'system') self.client.start_record('process', 'naoqi-service') def _stop_record(self): self.client.stop_record('system', 'system') self.client.stop_record('process', 'naoqi-service') def _check_action(self): return self.printer or self.store def get_data(self, target, field): try: for files in self.files: if os.path.basename(files) == target: with open(files) as csvfile: reader = csv.DictReader(csvfile) result = [] for row in reader: result.append(float(row[field])) return result except AttributeError as e: return None