Я обнаружил утечку памяти и отследил ее до этого поля внутри CLR:
Microsoft.CSharp.RuntimeBinder.RuntimeBinder.s_instance.m_semanticChecker.globalSymbolContext.GlobalSymbols.tableGlobal.dictionary
Его можно просмотреть в отладчике, используя эту спецификацию:
((Microsoft.CSharp.RuntimeBinder.Semantics.LangCompiler) (Microsoft.CSharp.RuntimeBinder.RuntimeBinder.s_instance.m_semanticChecker)). GlobalSymbolContext.GlobalSymbols.tableGlobal.dictionary
Во время исполнения приложения этот словарь неограниченно увеличивается.
Есть идеи, для чего именно используется это поле и почему оно может расти?
UPD нет динамического создания типов, по крайней мере в моем коде