microsoft / igvm

MIT License
87 stars 18 forks source link

Add an `unstable_merge` function to deduplicate PAGE_DATA structures as best as possible #43

Open chris-oo opened 5 months ago

chris-oo commented 5 months ago

Instead of having just a stable merge, offer an unstable merge that attempts to deduplicate PAGE_DATA structures between different compatibility masks. A user could use this unstable_merge to make the IGVM file as small as possible, then perform another pass to generate the launch measurement.

chris-oo commented 5 months ago

A different approach to this is done by deduplicating file data as implemented by #44. While an unstable_merge could be useful, deduplicating file data is actually the larger portion of the file size, which in a different project reduces the generated file size by as much as 2/3rds or more.

chris-oo commented 5 months ago

For now I'm going to close this because we don't yet need it, the variable headers section is small. We could revisit it in the future.

chris-oo commented 5 months ago

The current stable merge function is slow, so it's potentially worth looking at unstable_merge again.