fix high-iteration stack overflow by flattening the list#5
Open
warner wants to merge 1 commit intomitsuhiko:masterfrom
Open
fix high-iteration stack overflow by flattening the list#5warner wants to merge 1 commit intomitsuhiko:masterfrom
warner wants to merge 1 commit intomitsuhiko:masterfrom
Conversation
The core loop had too many generators: chaining them together results in high stack usage (and reduced speed) when called with a high number of iterations. At roughly 88000 iterations, python segfaults. Removing those extra stack frames also appears to speed up the loop by about 5% This fixes mitsuhiko#2.
|
I also get a segfault starting at 74790 iterations while comparing against the openssl pbkdf2 function – I'm not actually planning on using such a high iteration count. from pbkdf2 import pbkdf2_hex
pbkdf2_hex('hello', '', 74790, 48)
|
|
Would be great if this could be merged and pushed up to PIP. Fixes issues in some other projects. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The core loop had too many generators: chaining them together results in high stack usage (and reduced speed) when called with a high number of iterations. At roughly 88000 iterations, python segfaults.
Removing those extra stack frames also appears to speed up the loop by about 5%
This fixes #2.