forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit switches the new buffered finalisation mechanism in BDWGC using the disclaim API. Gc<T> objects which need finalising are allocated with a 'disclaim' (i.e. finaliser) function pointer in their first word. These finalisers are added to buffers during GC which are then finalised on a separate thread from within the BDWGC. The table below shows the performance difference between this approach (called disclaim) and the previous tip-of-tree commit (which used the much slower, channel-based off-thread finalisation). ``` Benchmark Config Type mean (ms) Bounce baseline micro 874 Bounce disclaim micro 114 BubbleSort baseline micro 1273 BubbleSort disclaim micro 144 DeltaBlue baseline macro 552 DeltaBlue disclaim macro 91 Dispatch baseline micro 726 Dispatch disclaim micro 120 Fannkuch baseline micro 364 Fannkuch disclaim micro 66 Fibonacci baseline micro 1559 Fibonacci disclaim micro 200 FieldLoop baseline micro 835 FieldLoop disclaim micro 179 GraphSearch baseline macro 175 GraphSearch disclaim macro 43 IntegerLoop baseline micro 1685 IntegerLoop disclaim micro 181 JsonSmall baseline macro 542 JsonSmall disclaim macro 125 List baseline micro 1447 List disclaim micro 149 Loop baseline micro 2099 Loop disclaim micro 231 Mandelbrot baseline micro 1172 Mandelbrot disclaim micro 160 NBody baseline macro 722 NBody disclaim macro 69 PageRank baseline macro 662 PageRank disclaim macro 150 Permute baseline micro 1281 Permute disclaim micro 156 Queens baseline micro 1017 Queens disclaim micro 131 QuickSort baseline micro 251 QuickSort disclaim micro 41 Recurse baseline micro 1313 Recurse disclaim micro 183 Richards baseline macro Failed Richards disclaim macro 1722 Sieve baseline micro 1068 Sieve disclaim micro 215 Storage baseline micro 79 Storage disclaim micro 43 Sum baseline micro 864 Sum disclaim micro 105 Towers baseline micro 1309 Towers disclaim micro 153 TreeSort baseline micro 350 TreeSort disclaim micro 66 WhileLoop baseline micro 1962 WhileLoop disclaim micro 262 ```
- Loading branch information
1 parent
21f4c79
commit d4c6cf0
Showing
7 changed files
with
115 additions
and
108 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file was deleted.
Oops, something went wrong.
This file contains 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
This file contains 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