Version 4 (modified by chromatic, 4 years ago)

--

Rakudo needs better performance from Parrot, and Parrot can provide it. Here are several areas of exploration.

ExplanationDifficultyAmount of WorkBenefit Estimate
FixingPIRVtableOverrides moderatelow to moderate 5%
FixingConstantSTRINGCaching moderatelowbig memory savings, 3% performance improvement, further benefits from other string changes (avl_string_cache branch)
Fix freeze/thaw of complex PMCsdifficultmoderate to highhuge startup improvement for Rakudo
Slim parrot_string_tlowlow to moderate2-3%, depending on workload
Remove PMC struct's synclowlow2% at most
Implement sweep-free GCmoderate to highmoderate10%, depending on workload
Remove PMCProxyhighmoderate5-7%
Implement garbage-first GChighhigh10-15%
Immutable Stringsmoderatelow (yes, really)7% (immutable_strings_part1 branch)
Type-specific hasheslow to moderatelow to moderate3-5%
String equality macrolowlow2-3%
Store CallSignatures in PBCmoderatelow to moderate7-8%
Cheaper access to object attributesmoderate to highmoderate5-7%
Make fast core the default corelow to moderatelow2-3%
RemoveUnnecessaryDataFromConfig_lib.pbclowlow to moderate5-10% Parrot startup (2.926% achieved with r45623, more possibilities await)
Loritohighhighorders of magnitude