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%(done in r46436, is there any other work to be done?)
|
| | 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)
|