-
Notifications
You must be signed in to change notification settings - Fork 251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[API Review] Memory performance improvements #1971
Closed
Labels
priority:p1
High priority but not blocking. Causes major but not critical loss of functionality SLA <=7days
WIP
Milestone
Comments
Sample of documents needed:
|
We need to make a decision on whether we should use v1 as a baseline and then port the same testing to v2. |
(assigned to myself to build the benchmarking and comparison infrastructure for this, Maggie should continue working on the performance improvements) |
Something that was removed from the docs, putting it here for reference, related to your comment @baywet Potential Performance improvements public virtual IDictionary<string, OpenApiSchema> PatternProperties { get; set; } = new Dictionary<string, OpenApiSchema>();
public virtual IList<JsonNode> Enum { get; set; } = new List<JsonNode>();
public virtual IList<OpenApiSchema> AllOf { get; set; } = new List<OpenApiSchema>();
public virtual IList<OpenApiSchema> OneOf { get; set; } = new List<OpenApiSchema>();
public virtual IList<OpenApiSchema> AnyOf { get; set; } = new List<OpenApiSchema>();
public virtual ISet<string> Required { get; set; } = new HashSet<string>();
public virtual IDictionary<string, OpenApiSchema> Properties { get; set; } = new Dictionary<string, OpenApiSchema>();
public virtual IDictionary<string, IOpenApiExtension> Extensions { get; set; } = new Dictionary<string, IOpenApiExtension>(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
priority:p1
High priority but not blocking. Causes major but not critical loss of functionality SLA <=7days
WIP
Currently we instantiate new objects every time for the following properties, this can have a large memory impact for large OpenAPI descriptions. For eg: For the Graph OpenAPI this will create 142k schemas, for a total of 1.1 million objects that might be unused. So we have an opportunity for some memory perf. improvements by lazily instantiating these.
A couple of different ideas were identified:
OpenAPISchema
OpenAPISchema
and other types as structs instead of classes to improve performance.IDictionary
properties should have a default value and no setter.The text was updated successfully, but these errors were encountered: