Firstly, a huge thank you - mono.cecil has been hugely useful and clearly you have invested a massive amount of work on it over the years.
I have completed an initial set of development using mono.cecil; using it only for inspecting type information, not generating assemblies, reading .pdb etc. I'm wondering if you might be able to offer any tips on reducing the memory usage? I have been experimenting with different reader parameters and have currently settled on:
InMemory = false,
ReadWrite = false,
ReadSymbols = false
We only use a fairly small subset of the properties available on the TypeReference, TypeDefinition etc., so I'm wondering if you might have any tips on how we might be able to minimize memory usage once we have loaded all the required AssemblyDefinitions; i.e. I'm wondering if it might be possible to discard some data held behind the scenes that might not be necessary in an inspection only scenario. Not necessarily looking for anything built in, maybe something we could implement in our own code to "prune" the object graph somehow to reduce the overall memory footprint.
One thing we have observed is that a large number of byte arrays are held in memory - does mono.cecil hold the raw metadata in memory and query on demand, or could this be data that is being held in memory for some other purpose - i.e. manipulating and writing assemblies. I wonder if might be possible to somehow remove that once we have completed the initial population of the objects?
Thanks for any pointers or tips you might be able to offer - much appreciated.
Richard