-
Notifications
You must be signed in to change notification settings - Fork 39
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
Implement Binary Search in Replay #631
Conversation
Co-Authored-By: Sawood Alam <ibnesayeed@gmail.com>
Co-authored-by: Sawood Alam <ibnesayeed@gmail.com>
@ibnesayeed It would be interesting to use your code-in-github-comments GitHub action to evaluate the binsearch speedup in this PR. |
Sure, please go ahead and craft a sequence of commands or python code that you would write to compare the two variations if you were to test it locally on your machine. From there it should be easy to convert it to something that we can make it run here and report the results back. |
This could probably be performed using GitHub Actions, right? An easy way to do this might be to fabricate large data with https://github.com/machawk1/cdxjGenerator then run the master branch vs. the issue-631 branch. High level test procedure outside of the code (brainstorming):
|
Co-authored-by: Sawood Alam <ibnesayeed@gmail.com>
@machawk1 any plans to publish |
@ibnesayeed I thought I had already done so but in writing the above procedure, realized I had not, so created machawk1/cdxjGenerator#3. I realize I can create a package without submitting it to pypi but it will help move the process along if there is an end-goal. |
Merging this in after multiple discussions and a long delay. It is not the optimal implementation but it is a step in the right direction. |
This implementation is heavily inspired by @ibnesayeed's MementoMap implementation.
In the future we might align this with @ibnesayeed upcoming API but for now, this drastically speeds up replay and thus closes #604. I recommend we merge then refine the implementation.
@ibnesayeed Can you have a look and let me know of some refinements with regard to semantics and implementation?