-
Notifications
You must be signed in to change notification settings - Fork 72
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
Benchmark test suite that allows easy comparison of competing implementations #22
Comments
If we had time then I can imagine making a small nosetests like utility.
|
We should also consider using IPython notebooks. |
Interesting: https://github.com/simonpercivall/bettertimeit is a nosetest-like utility for timing functions. It doesn't have many of the features I want, but it is a very young package, so perhaps it is possible to help add these features. In general, I prefer not to use IPython notebooks for things like this, and instead prefer utilities that are usable from the command line and allow code to be written in plain text files with my favorite editor, especially if the utilities are general and reusable. |
I'm now envisioning a I think this would be useful for both While I don't want to dump a lot of time into this, I think something reasonably good can be whipped up pretty quickly. |
@mrocklin, are you okay with the name of the standalone package being |
I'm fine with the name |
I think I like the name |
Sounds good. On Wed, May 21, 2014 at 8:49 PM, Erik Welch notifications@github.comwrote:
|
I googled |
What did you find with google? I have |
Just lots of little benchmarking utilities for different systems. https://www.google.com/#q=benchit It's not a big deal. PyToolz overlaps with PyTools, a visual studio thing. It makes googling and searching a bit more of a pain. The Z really helps. |
It's a good point though. I had googled "benchit python" originally, and the results were pretty weak. Perhaps the Python package can be |
I just pushed @mrocklin, shall we clone this into PyToolz? Do you have suggestions for a different name? Do you like the idea of having benchmarks for A lot of work remains to make this a generally useful--and clean--package, but the README should illustrate the vision for the project. The README is currently too long for a readme (imho), but it should form the base of the online documentation. Right now, I would call Feedback and contributions are most welcome. I would love to get somebody else interested in this project who can be a primary author. |
I know the performance of (possibly several) functions in CyToolz can be improved, but there is no good way to compare competing implementations against a common suite of benchmarks. If a contributor (myself included) wants to improve a function, they probably need to engage in time-consuming trial and error using their own benchmarks. I want to remedy this situation.
I envision the following:
*.pyx
file per function that is named after the function.*.pyx
file can have several implementations of the function.get1
orget_with_itemgetter
.timeit
module.python get.pyx
.toolz
,cytoolz
, and suffixes of all alternative implementations.One advantage of doing this is to have a record of alternative implementations that have been tried. It also allows faster trial and error testing of implementations.
I would have loved to have something like this while first developing CyToolz. I have several benchmarks and alternative implementations haphazardly lying around, and it would be best for everybody to have them shared and usable in a sane way.
I plan to tackle this very soon, but I have not yet begun, so feedback and alternative ideas are most welcome!
The text was updated successfully, but these errors were encountered: