Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-magical workflows #8

Open
mrocklin opened this issue Jun 21, 2014 · 3 comments
Open

Non-magical workflows #8

mrocklin opened this issue Jun 21, 2014 · 3 comments

Comments

@mrocklin
Copy link
Member

When I look at the headline demonstration of benchtoolz in the README my gut reaction is that it's very magical. This turns me off a tiny bit. I wonder if there is a good non-magical workflow that we could also think about when developing.

@eriknw
Copy link
Member

eriknw commented Jun 21, 2014

Thanks for sharing your reaction. I dislike magical things too, but, with benchmarking, I dislike the alternatives even more. If it's any consolation, the "magic" aims to be simple and straightforward.

Is your criticism of the presentation of the workflow, or the workflow itself? What other workflow would you prefer?

@eriknw
Copy link
Member

eriknw commented Jun 21, 2014

Also, which magical parts gave you pause? benchtoolz is still largely in a proof-of-concept phase (but I think the proof-of-concept has been demonstrated), and I expect major changes to occur. So, feel free to think big!

@mrocklin
Copy link
Member Author

Looking around and parsing function names is what seemed magical to me.

A more explicit version might be something like the following:

def bench_zeroes(zeros=[zeros_imul, zeros_mul, zeros_repeat, zeros_slow],
                 data={'empty': 0, 'small': 10, 'large': 10000}):
    zeros(data)

But often I actually don't want to do a comparison of many different implementations. Rather I want to just maintain a set of benchmarks and see which ones increase or decrease as I change commits. In the common case I actually just want to run a bit of functionality and time it in a reasonable manner and report that time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants