Description
Our performance team has identified several areas of improvement to reduce garbage collection and CPU usage.
First, we reduced the amount of StringBuilders created in HTTPUtils.java and ResourceUtils.java.
Second, we created JAXRSUtils.doMimeTypesIntersect() - a method similar to JAXRSUtils.intersectMimeTypes - that doesn't create a HashSet but instead returns a boolean when we just need to know if they intersect.
Third, we found that getting the annotations for parameters to create constructor arguments in PerRequestResourceProvider.java is expensive, so we cache them in the constructor instead of getting them via reflection every request.
These changes combined result in a ~1.5-2% performance increase.
Attachments
Issue Links
- links to