-
Notifications
You must be signed in to change notification settings - Fork 3
Update to 0.2.0 #20
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
Update to 0.2.0 #20
Conversation
This removes Mark::TraceRoots (and renames Mark::TraceCounting to Mark::Traced), since it isn't really needed
Remove `Mark::TraceRoots`
The "finalization" feature is enabled by default. It's still required to implement the Finalization trait, even if finalization is disabled. Simply, the `finalize` method won't ever be call.
Make finalization an optional feature
|
Benchmark results: benchmark_stress_test benchmark_count_binary_trees benchmark_count_binary_trees_with_parent benchmark_large_linked_list Old results:
benchmark_stress_test benchmark_count_binary_trees benchmark_count_binary_trees_with_parent benchmark_large_linked_list Results without finalization:
benchmark_stress_test benchmark_count_binary_trees benchmark_count_binary_trees_with_parent benchmark_large_linked_list Old results without finalization:
benchmark_stress_test benchmark_count_binary_trees benchmark_count_binary_trees_with_parent benchmark_large_linked_list |
The benchmark results with finalization disabled are so huge (from -7% to -29%) since the main branch doesn't allow to disable finalization. Thus, these benchmarks are rather representative of how much finalization impacts on performance (a lot!). |
finalization(enabled by default).It's still necessary to implement the
Finalizetrait, even though finalization isn't enabled, in order to avoid issues when multiple crates enables different features (see here for an example of such an issue). If finalization is not enabled, simply the implementation ofFinalizewon't ever be called.state::execution_counttostate::executions_count.state::allocated_bytesandstate::executions_countfunctions now return aResult.