EntityModel.ConvertToOpenApi method memory usage
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- csharp, openapi
- Domaine
- api, backend-api-design, performance
Piste de recherche
Commencez par Microsoft.OpenApi.OData.EdmModelOpenApiExtensions.ConvertToOpenApi() et reproduisez le comportement à l’aide des exemples EDMX joints et de la séquence d’analyse C# indiquée dans l’issue. Comparez le modèle fonctionnel plus petit avec EDMX 1 et EDMX 3 tout en profilant l’utilisation de la mémoire et le temps de génération. Le travail est considéré comme terminé lorsque les documents EDMX problématiques produisent un OpenApiDocument sans utilisation excessive de la mémoire ni blocage apparent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- C#
- Étoiles
- 240
- Forks
- 70
- Merge moyen
- 7 h 59 min
- PR mergées (30 j)
- 13
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/OpenAPI.NET.OData
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
microsoft/OpenAPI.NET.OData#661 ·
-
Microsoft.OpenApi.OData.Reader.dll ships unversioned (0.0.0.0) since the 2026-01-16 releases Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 58/100
microsoft/OpenAPI.NET.OData#852 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
microsoft/OpenAPI.NET.OData#833 ·
-
status:needs-more-information
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
microsoft/OpenAPI.NET.OData#723 · 1 commentaire · 1 réaction ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
microsoft/OpenAPI.NET.OData#720 ·
Toutes les issues de microsoft/OpenAPI.NET.OData
Issues similaires
-
type/automation type/tech-debt
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
t/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
ci-failure-cause test-failure
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
area:auth FE mvp P3
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
klasolsson81/jobbliggaren#1788 ·