GithubHelp home page GithubHelp logo

leifwalsh / perfume Goto Github PK

View Code? Open in Web Editor NEW
33.0 3.0 4.0 2.34 MB

Interactive performance benchmarking in Jupyter

License: Other

Makefile 1.95% Python 98.05%
python performance benchmarking jupyter interactive

perfume's Introduction

perfume

Documentation Status Updates

Interactive performance benchmarking in Jupyter

Overview

perfume is a performance benchmarking tool that provides quick feedback on the systems under test.

The primary goals are:

  • Prioritize analysis of distributions of latency, not averages.
  • Support both immediate feedback and robust benchmarking with many samples, through a UI that updates as we collect more information.
  • Provide raw data back to the user, for flexible custom analysis.
  • Provide helpful post-processing analysis and charting tools.

Features

  • Live-updating histogram chart and descriptive statistics during a benchmark run.
  • Jupyter notebook integration.
  • Tunable benchmarking overhead.
  • Comparative analysis of multiple functions under test.
  • Powerful post-processing analysis tools.

Demo

You can check out an example notebook using perfume.

docs/perfume.gif

docs/cumulative_quantiles.png

Installing

pip install perfume-bench

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

perfume's People

Contributors

dependabot[bot] avatar leifwalsh avatar pyup-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

perfume's Issues

Add an observation time to each sample.

this would allow users to see distribution as-of some time in the experiment, plot statistics over time, etc.

to Leif's point, the observations are ordered so this is possible but I like the idea of having this in time semantics. for example, i could show that mean runtime over time, t, changed by X.

Consider alternatives to linear equal-width histogram bins

Is your feature request related to a problem? Please describe.

Linear equal-width histogram binning has some known problems for interpretability. They can oversmooth in regions of high density (and we may expect latency measurements to have such regions), and have trouble accurately representing outliers, as one outlier compresses the rest of the chart dramatically.

Describe the solution you'd like

I would like to explore alternatives to this histogram approach. I'm not sure what the right solution is yet.

Describe alternatives you've considered

Some alternatives:

Add setup functionality

For some benchmarks, we may want to run (but not time) some initialization code before each run

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.