reset next_size/start_size when calling purge_memory #66
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.
Consider the above code, I think it is a normal scenario that users may use, it has the performance issue.
Althought the more correct usage might be call
memory_pool.free()to free those memory (data1, data2) one by one instead of callingpurge_memory()at each iteration/rounds.The current doubling algorithm doesn't reset the start_size and the next_size. If calling
memory_pool.purge_memory(), the pool releases memory to the system. And the next timememory_pool.malloc()is called, the pool asks for the doubled memory from system, which is not expected.