Rakudo needs better performance from Parrot, and Parrot can provide it. Here are several areas of exploration.
In progress? | Explanation | Difficulty | Amount of Work | Benefit Estimate |
* | FixingConstantSTRINGCaching | moderate | low | big memory savings, 3% performance improvement, further benefits from other string changes (avl_string_cache branch) |
* | RemoveUnnecessaryDataFromConfig_lib.pbc | low | low to moderate | 5-10% Parrot startup (2.926% achieved with r45623, more possibilities await) |
String equality macro | low | low | 2-3% | |
Slim parrot_string_t | low | low to moderate | 2-3%, depending on workload | |
Make fast core the default core | low to moderate | low | 2-3% | |
FixingPIRVtableOverrides | moderate | low to moderate | 5% | |
Fix freeze/thaw of complex PMCs | difficult | moderate to high | huge startup improvement for Rakudo | |
Implement sweep-free GC | moderate to high | moderate | 10%, depending on workload | |
Remove PMCProxy | high | moderate | 5-7% | |
Implement garbage-first GC | high | high | 10-15% | |
Type-specific hashes | low to moderate | low to moderate | 3-5% | |
Store CallSignatures in PBC | moderate | low to moderate | 7-8% | |
Cheaper access to object attributes | moderate to high | moderate | 5-7% | |
Lorito | high | high | orders of magnitude |
Completed tasks:
Remove PMC struct's sync | low | low | 2% at most (done in rr46289) |