Version 2 (modified by coke, 5 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
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%
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
Loritohighhighorders of magnitude