EntityModel.ConvertToOpenApi method memory usage
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- csharp, openapi
- Área
- api, backend-api-design, performance
Línea de trabajo
Comience con Microsoft.OpenApi.OData.EdmModelOpenApiExtensions.ConvertToOpenApi() y reproduzca el comportamiento utilizando los ejemplos de EDMX adjuntos y la secuencia de análisis de C# del issue. Compare el modelo funcional más pequeño con EDMX 1 y EDMX 3, midiendo el uso de memoria y el tiempo de generación. Se considera completado cuando los documentos EDMX problemáticos producen un OpenApiDocument sin un uso excesivo de memoria ni un bloqueo aparente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When using IEdmModel.ConvertToOpenApi - some EDMX documents appear to trigger massive memory usage on some occasions it never seems to finish, I've left it for upwards of 30 minutes. I am trying to generate documentation for Microsoft Dynamics Business Central API's.
Assemblies affected
This is a C# WPF .NET7.0 app
- Microsoft.OpenApi V1.6.4
- Microsoft.OpenApi.OData V1.4.0
- Microsoft.OpenApi.Readers V1.6.4
Microsoft.OpenApi.OData.EdmModelOpenApiExtensions.ConvertToOpenApi()
Steps to reproduce
the below code in conjunction with the example EDMX examples replicates the issue
var EdmData = System.IO.File.ReadAllText(ExampleEdmxFilePath);
IEdmModel model = CsdlReader.Parse(XElement.Parse(EdmData).CreateReader());
var document = EntityModel.ConvertToOpenApi();
Expected result
The OpenApiDocument is created quickly and with reasonable memory usage
Actual result
The OpenApiDocument is not created/created very slowly and uses massive amount of memory
Additional detail
From the attached zip file
- EDMX 1 - this is a collection of ~15 custom API's - the OpenApiDocument takes around 5 minutes to be created, if I export this to a json OpenApiv3 document the resulting file is 3.5Gb and it generates ~22,000 paths, it's uses ~9Gb of memory according to Visual Studio resource profiler. If I import the OpenApiV3 Json document into Swagger it is not recognised so I suspect the 3.5Gb is just hitting some form of limit.
- EDMX 2 - a separate set of 20 or so custom api's, appears to work correctly, the OpenApiDocument takes a few seconds to generate and uses very little memory
- EDMX 3 - the collection of all standard Microsoft Dynamics Business Central API V2 API's, I've never got this to finish, I've left it for over 30 minutes and it's used up to 20Gb of memory.
- Lenguaje dominante
- C#
- Estrellas
- 240
- Forks
- 70
- Merge medio
- 7 h 59 min
- PR fusionados (30 d)
- 13
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/OpenAPI.NET.OData
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/OpenAPI.NET.OData#661 ·
-
Microsoft.OpenApi.OData.Reader.dll ships unversioned (0.0.0.0) since the 2026-01-16 releases Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
microsoft/OpenAPI.NET.OData#852 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
microsoft/OpenAPI.NET.OData#833 ·
-
status:needs-more-information
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
microsoft/OpenAPI.NET.OData#723 · 1 comentario · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
microsoft/OpenAPI.NET.OData#720 ·
Todos los issues de microsoft/OpenAPI.NET.OData
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
sillsdev/languageforge-lexbox#2665 ·
-
bug documentation frontend
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
azurenoops/spin_agent#975 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
SubtitleEdit/subtitleedit#15108 · 1 comentario ·