def run(self, accessor, opts): """Ask fake Graphite Web for points. See command.CommandBase. """ # import here to make sure everything is setup. os.environ['DJANGO_SETTINGS_MODULE'] = 'graphite.settings' accessor.connect() from django.conf import settings as django_settings # Disable carbon link (enabled by default) django_settings.CARBONLINK_HOSTS = [] # Make sure logging goes to stderr django_settings.LOG_FILE_INFO = '-' django_settings.LOG_FILE_EXCEPTION = '-' django_settings.LOG_FILE_CACHE = '-' django_settings.LOG_FILE_RENDERING = '-' from graphite import util as graphite_util from biggraphite.plugins import graphite settings = bg_utils.settings_from_confattr(opts, prefix='') metadata_cache = bg_utils.cache_from_settings(accessor, settings) metadata_cache.open() if opts.profile == "flamegraph": flamegraph.start_profile_thread(fd=open("./perf.log", "w")) finder = graphite.Finder( directories=[], accessor=accessor, metadata_cache=metadata_cache ) time_start = graphite_util.timestamp(opts.time_start) time_end = graphite_util.timestamp(opts.time_end) output_csv = opts.output_csv results = finder.fetch(opts.patterns, time_start, time_end) for i, result in enumerate(results): # Change the output to match something that display_metrics # can work with. metric = _FakeMetric(result['path']) time_start, time_end, step = result['time_info'] points = [] for i, v in enumerate(result['values']): v = 0 if v is None else v points.append((time_start + step * i, v)) result = ( points, time_start, time_end, step ) if not opts.no_output: self._display_metric(metric, result, output_csv)
def make_flamegraph(filterx=None): import flamegraph import os perf_log_path = os.path.join(os.path.dirname(__file__), "../tmp/perf.log") flamegraph.start_profile_thread(fd=open(perf_log_path, "w"), filter=filterx, interval=0.001)
def make_flamegraph(filterx=None): import flamegraph perf_log_path = os.path.join( os.path.dirname(__file__), "/home/racecar/racecar-ws/src/simulator/headless_simulator/tmp/perf2.log" ) flamegraph.start_profile_thread(fd=open(perf_log_path, "w"), filter=filterx, interval=0.001)
def start_flamegraphing(): # TODO: codify my workflow for profiling graphics vs simulation code. # Basically, profiling graphics is done by using dev tools of whatever # browser (in Firefox, F12 > Performance > Start Recording Performance) # And profiling python simulation code is done by running this function, # then processing PERF_FILE with https://github.com/brendangregg/FlameGraph # The command is, without appropriate paths, is: # dos2unix PERF_FILE && flamegraph.pl PERF_FILE > orbitx-perf.svg # Where flamegraph.pl is from that brendangregg repo. import flamegraph flamegraph.start_profile_thread(fd=open(PERF_FILE, 'w'), filter=r'(simthread|MainThread)')
def run(self, accessor, opts): """Ask fake Graphite Web for points. See command.CommandBase. """ # import here to make sure everything is setup. os.environ["DJANGO_SETTINGS_MODULE"] = "graphite.settings" accessor.connect() from django.conf import settings as django_settings # Disable carbon link (enabled by default) django_settings.CARBONLINK_HOSTS = [] # Make sure logging goes to stderr django_settings.LOG_FILE_INFO = "-" django_settings.LOG_FILE_EXCEPTION = "-" django_settings.LOG_FILE_CACHE = "-" django_settings.LOG_FILE_RENDERING = "-" from graphite import util as graphite_util from biggraphite.plugins import graphite settings = bg_settings.settings_from_confattr(opts, prefix="") metadata_cache = bg_cache_factory.cache_from_settings(accessor, settings) metadata_cache.open() if opts.profile == "flamegraph": flamegraph.start_profile_thread(fd=open("./perf.log", "w")) finder = graphite.Finder( directories=[], accessor=accessor, metadata_cache=metadata_cache ) time_start = graphite_util.timestamp(opts.time_start) time_end = graphite_util.timestamp(opts.time_end) output_csv = opts.output_csv results = finder.fetch(opts.patterns, time_start, time_end) for i, result in enumerate(results): # Change the output to match something that display_metrics # can work with. metric = _FakeMetric(result["path"]) time_start, time_end, step = result["time_info"] points = [] for i, v in enumerate(result["values"]): v = 0 if v is None else v points.append((time_start + step * i, v)) result = (points, time_start, time_end, step) if not opts.no_output: self._display_metric(metric, result, output_csv)
def main(): population = Population(150) try: blocks = sf.blocks('inputs/hello_world.wav', blocksize=512, overlap=32) generations = tqdm(range(1)) for generation in generations: block = next(blocks) block = np.pad(block, (0, 512 - len(block)), 'constant') fitness = population.evaluate(block) population.reproduce(generation) population.speciate(generation) generations.set_postfix({ 'G': '{:.4e}'.format(fitness[0]), 'D': '{:.4e}'.format(fitness[1]) }) except AssertionError: pass print(population) print(population.enc_best_gen, population.enc_best_fit) print(population.dec_best_gen, population.dec_best_fit) print(population.crit_best_gen, population.crit_best_fit) print() import flamegraph flamegraph.start_profile_thread(fd=open("./perf.log", "w")) main()
def make_flamegraph(filterx=None): import flamegraph, os perf_log_path = os.path.join(os.path.dirname(__file__), "../tmp/perf.log") flamegraph.start_profile_thread(fd=open(perf_log_path, "w"), filter=filterx, interval=0.001)
""" Example usage of flamegraph. To view a flamegraph run these commands: $ python example.py $ flamegraph.pl perf.log > perf.svg $ inkview perf.svg """ import time import sys import flamegraph def foo(): time.sleep(.1) bar() def bar(): time.sleep(.05) if __name__ == "__main__": flamegraph.start_profile_thread(fd=open("./perf.log", "w")) N = 10 for x in xrange(N): print "{}/{}".format(x, N) foo()
import flamegraph import time flamegraph. flamegraph.start_profile_thread(fd=open("./graphs/perf_{}.log".format(time.time()), "w"))
DATASET = 'ng20' H = 10 USED_SPARSE_MATRIX = scipy.sparse.lil_matrix PERF_LOG = './perf.log' # Warm up primes cache primes.get_highest_prime_range() # Get dataset X, Y = dataset_helper.get_concept_map_for_dataset(DATASET, graphs_only=True) # Convert to adj X = graph_helper.convert_graphs_to_adjs_tuples(X, copy=True) # Same label for all nodes adj, labels = zip(*X) labels = [[1] * len(x) for x in labels] X = list(zip(adj, labels)) # Start profiling thread = flamegraph.start_profile_thread(fd=open(PERF_LOG, "w")) start = time() # Calculate fast_wl phi_lists, new_label_lookups, new_label_counters = fast_wl.transform( X, h=H, used_matrix_type=USED_SPARSE_MATRIX) # Convert to sparse lil_matrix for "fancy" indexing (needed for other pipeline elements) phi_lists = [phi.tolil().T for phi in phi_lists] print(time_utils.seconds_to_human_readable(time() - start))