Skip to content

Provide names and pools when creating MiniYaml.#21299

Merged
PunkPun merged 1 commit into
OpenRA:bleedfrom
RoosterDragon:yaml
Jan 21, 2024
Merged

Provide names and pools when creating MiniYaml.#21299
PunkPun merged 1 commit into
OpenRA:bleedfrom
RoosterDragon:yaml

Conversation

@RoosterDragon

Copy link
Copy Markdown
Member
  • Rename the filename parameter to name and make it mandatory. Review all callers and ensure a useful string is provided as input, to ensure sufficient context is included for logging and debugging. This can be a filename, url, or any arbitrary text so include whatever context seems reasonable.
  • When several MiniYamls are created that have similar content, provide a shared string pool. This allows strings that are common between all the yaml to be shared, reducing long term memory usage. We also change the pool from a dictionary to a set. Originally a Dictionary had to be used so we could call TryGetValue to get a reference to the pooled string. Now that more recent versions of dotnet provide a TryGetValue on HashSet, we can use a set directly without the memory wasted by having to store both keys and values in a dictionary.

Comment thread OpenRA.Game/Map/MapPreview.cs Outdated
- Rename the filename parameter to name and make it mandatory. Review all callers and ensure a useful string is provided as input, to ensure sufficient context is included for logging and debugging. This can be a filename, url, or any arbitrary text so include whatever context seems reasonable.
- When several MiniYamls are created that have similar content, provide a shared string pool. This allows strings that are common between all the yaml to be shared, reducing long term memory usage. We also change the pool from a dictionary to a set. Originally a Dictionary had to be used so we could call TryGetValue to get a reference to the pooled string. Now that more recent versions of dotnet provide a TryGetValue on HashSet, we can use a set directly without the memory wasted by having to store both keys and values in a dictionary.
@PunkPun PunkPun merged commit b58c1ea into OpenRA:bleed Jan 21, 2024
@PunkPun

PunkPun commented Jan 21, 2024

Copy link
Copy Markdown
Member

changelog

@RoosterDragon RoosterDragon deleted the yaml branch January 21, 2024 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants