Exemple #1
0
    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)
Exemple #4
0
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)
Exemple #6
0
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()
Exemple #9
0
import flamegraph
import time
flamegraph.
flamegraph.start_profile_thread(fd=open("./graphs/perf_{}.log".format(time.time()), "w"))
Exemple #10
0
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))