It appears that some memory saving can be archived by tweaking the existing SampleContextFrameVector setup. Below are memory usage for two benchmarks before and after this change.
- Medium benchmark:
- Before:
note: After computeSizeForProfiledFunctions note: VM: 12.50 GB RSS: 11.02 GB note: After generateProbeBasedProfile note: **VM: 30.56 GB RSS: 29.08 GB** note: After postProcessProfiles note: VM: 31.91 GB RSS: 30.43 GB
- After:
note: After computeSizeForProfiledFunctions note: VM: 12.26 GB RSS: 10.80 GB note: After generateProbeBasedProfile note: **VM: 28.76 GB RSS: 27.29 GB** note: After postProcessProfiles note: VM: 30.12 GB RSS: 28.66 GB
- Large benchmark:
- Before:
note: After computeSizeForProfiledFunctions note: VM: 106.28 GB RSS: 91.25 GB note: After generateProbeBasedProfile note: **VM: 245.19 GB RSS: 224.30 GB** note: After postProcessProfiles note: VM: 254.96 GB RSS: 221.58 GB
- After:
note: After computeSizeForProfiledFunctions note: VM: 105.95 GB RSS: 91.04 GB note: After generateProbeBasedProfile note: VM: **234.29 GB RSS: 215.39 GB** note: After postProcessProfiles note: VM: 244.03 GB RSS: 213.45 GB