Version 1 (modified by chromatic, 4 years ago)

sixteen performance improvement suggestions

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%
Remove unnecessary data from config_lib.pbclowlow to moderate5-10% Parrot startup
Loritohighhighorders of magnitude