def testHardwareMonitorCpuUsageDecreasesWithThrottling(self): work_data_1 = [1.111111] * 10000 work_data_2 = [1.111111] * 10000 test_jobs = [Job(0, 0, work_data_1), Job(0, 0, work_data_2)] job_queue = Queue() job_queue.put(test_jobs[0]) job_queue.put(test_jobs[1]) launcher = MockLauncher() worker_thread = WorkerThread(job_queue, launcher) monitor = HardwareMonitor(worker_thread) monitor.start() try: worker_thread.run() except: pass while worker_thread.is_alive(): pass full_cpu_usage = monitor.get_cpu_usage() monitor.stop() work_data_1 = [1.111111] * 10000 work_data_2 = [1.111111] * 10000 test_jobs = [Job(0, 0, work_data_1), Job(0, 0, work_data_2)] job_queue = Queue() job_queue.put(test_jobs[0]) job_queue.put(test_jobs[1]) launcher = MockLauncher() worker_thread = WorkerThread(job_queue, launcher) worker_thread.throttling = 20 monitor.start() try: worker_thread.run() except: pass while worker_thread.is_alive(): pass throttled_cpu_usage = monitor.get_cpu_usage() monitor.stop() assert throttled_cpu_usage < full_cpu_usage
def testWorkerThreadThrottleIncreasesExecutionTime(self): work_data_1 = [1.111111] * 100 work_data_2 = [1.111111] * 100 test_jobs = [Job(0, 0, work_data_1), Job(0, 0, work_data_2)] job_queue = Queue() job_queue.put(test_jobs[0]) job_queue.put(test_jobs[1]) launcher = MockLauncher() worker_thread = WorkerThread(job_queue, launcher) start_time = time.time() try: worker_thread.run() except: pass while worker_thread.is_alive(): pass unthrottled_execution_time = time.time() - start_time work_data_1 = [1.111111] * 100 work_data_2 = [1.111111] * 100 test_jobs = [Job(0, 0, work_data_1), Job(0, 0, work_data_2)] job_queue = Queue() job_queue.put(test_jobs[0]) job_queue.put(test_jobs[1]) launcher = MockLauncher() worker_thread = WorkerThread(job_queue, launcher) worker_thread.throttling = 50 start_time = time.time() try: worker_thread.run() except: pass while worker_thread.is_alive(): pass throttled_execution_time = time.time() - start_time assert unthrottled_execution_time < throttled_execution_time