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)
|