def test_profile_create_domain_dept(): profiler.set_config(profile_symbolic=True, filename='test_profile_create_domain_dept.json') profiler.set_state('run') domain = profiler.Domain(name='PythonDomain') profiler.dump() profiler.set_state('stop')
def test_profile_counter(do_enable_profiler=True): def makeParams(): objects = tuple('foo' for _ in range(50)) template = ''.join('{%d}' % i for i in range(len(objects))) return template, objects def get_log(counter): template, objects = makeParams() range_size = 100000 logs = [] for i in range(range_size): if i <= range_size / 2: counter += 1 else: counter -= 1 logs.append(template.format(*objects)) return logs if do_enable_profiler is True: enable_profiler('test_profile_counter.json') python_domain = profiler.Domain('PythonDomain::test_profile_counter') counter = profiler.Counter(python_domain, "PythonCounter::test_profile_counter") counter.set_value(5) counter += 1 start = time.time() log = get_log(counter) assert len(log) == 100000 assert log[0].count('foo') == 50 stop = time.time() assert stop > start if do_enable_profiler is True: profiler.set_state('stop')
def test_profile_counter(do_enable_profiler=True): def makeParams(): objects = tuple('foo' for _ in range(50)) template = ''.join('{%d}' % i for i in range(len(objects))) return template, objects def doLog(counter): template, objects = makeParams() range_size = 100000 for i in range(range_size): if i <= range_size / 2: counter += 1 else: counter -= 1 logging.info(template.format(*objects)) if do_enable_profiler is True: enable_profiler('test_profile_counter.json') python_domain = profiler.Domain('PythonDomain::test_profile_counter') counter = profiler.Counter(python_domain, "PythonCounter::test_profile_counter") counter.set_value(5) counter += 1 start = time.time() doLog(counter) stop = time.time() print('run took: %.3f' % (stop - start)) if do_enable_profiler is True: profiler.set_state('stop')
def test_profile_frame(): def makeParams(): objects = tuple('foo' for _ in range(50)) template = ''.join('{%d}' % i for i in range(len(objects))) return template, objects def get_log(): template, objects = makeParams() logs = [] for _ in range(100000): logs.append(template.format(*objects)) return logs enable_profiler('test_profile_frame.json') python_domain = profiler.Domain('PythonDomain::test_profile_frame') frame = profiler.Frame(python_domain, "test_profile_frame") frame.start() start = time.time() var = mx.nd.ones((1000, 500)) assert len(get_log()) == 100000 var.asnumpy() stop = time.time() frame.stop() assert stop > start profiler.set_state('stop')
def test_profile_create_domain_dept(): profiler.profiler_set_config(mode='symbolic', filename='temp.json') profiler.set_state('run') domain = profiler.Domain(name='PythonDomain') print("Domain created: {}".format(str(domain))) profiler.dump_profile() profiler.set_state('stop')
def check_if_supported(): # If profiler support is absent, domain handle will be None try: domain = profiler.Domain(name='PythonDomain') if domain.handle.value is None: raise SkipTest('compile with USE_PROFILER=1 to enable this test.') except: raise SkipTest('compile with USE_PROFILER=1 to enable this test.')
def test_continuous_profile_and_instant_marker(): file_name = 'test_continuous_profile_and_instant_marker.json' enable_profiler(file_name, True, True, True) python_domain = profiler.Domain('PythonDomain::test_continuous_profile') last_file_size = 0 for i in range(5): profiler.Marker(python_domain, "StartIteration-" + str(i)).mark('process') test_profile_event(False) test_profile_counter(False) profiler.dump(False) # File size should keep increasing new_file_size = os.path.getsize(file_name) assert new_file_size >= last_file_size last_file_size = new_file_size profiler.dump(False) debug_str = profiler.dumps() assert(len(debug_str) > 0) profiler.set_state('stop')
def test_profile_frame(): def makeParams(): objects = tuple('foo' for _ in range(50)) template = ''.join('{%d}' % i for i in range(len(objects))) return template, objects def doLog(): template, objects = makeParams() for _ in range(100000): logging.info(template.format(*objects)) logging.basicConfig() enable_profiler('test_profile_frame.json') python_domain = profiler.Domain('PythonDomain::test_profile_frame') frame = profiler.Frame(python_domain, "test_profile_frame") frame.start() start = time.time() var = mx.nd.ones((1000, 500)) doLog() var.asnumpy() stop = time.time() frame.stop() print('run took: %.3f' % (stop - start)) profiler.set_state('stop')
def test_profile_create_domain(): enable_profiler('test_profile_create_domain.json') domain = profiler.Domain(name='PythonDomain') profiler.set_state('stop')
def test_profile_create_domain(): enable_profiler('test_profile_create_domain.json') domain = profiler.Domain(name='PythonDomain') print("Domain created: {}".format(str(domain))) profiler.set_state('stop')