You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a simple REST/JPA application running on open liberty that performs jpa queries. A change to the org.eclipse.persistence.internal.helper.ConcurrencyManager class is causing a 75% throughput performance degradation for that particular application (~26k req/sec down to ~6k req/sec). This affects master/3.0/2.7/2.6_WAS and appears to be introduced via #1038. Looking at ConcurrencyManager.acquire(), the code as written gets a full stack trace and parses out the current class and method information to construct a String:
The getStackTrace() method is called in four methods in this class: acquire, acquireReadLock, acquireWithWait, acquireDeferredLock. I changed the code in my local environment to create private static Strings that contain the class/method information for each method, and I was able to recover the lost throughput performance.
The text was updated successfully, but these errors were encountered:
dettmoney
changed the title
Severe performance degradation due to Thread.printStackTrace call in ConcurrencyManager
Severe performance degradation due to Thread.getStackTrace call in ConcurrencyManager
Oct 21, 2021
I have a simple REST/JPA application running on open liberty that performs jpa queries. A change to the org.eclipse.persistence.internal.helper.ConcurrencyManager class is causing a 75% throughput performance degradation for that particular application (~26k req/sec down to ~6k req/sec). This affects master/3.0/2.7/2.6_WAS and appears to be introduced via #1038. Looking at ConcurrencyManager.acquire(), the code as written gets a full stack trace and parses out the current class and method information to construct a String:
The getStackTrace() method is called in four methods in this class: acquire, acquireReadLock, acquireWithWait, acquireDeferredLock. I changed the code in my local environment to create private static Strings that contain the class/method information for each method, and I was able to recover the lost throughput performance.
The text was updated successfully, but these errors were encountered: