[
https://issues.apache.org/jira/browse/TOMEE-4571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin A. updated TOMEE-4571:
-----------------------------
Description:
We recently migrated our PrimeFaces 13 application from TomEE9 to TomEE10 and
found a massive decrease in performance (Factor 2 or more).
*Measurement* : open dedicated page, then track its 3 XHR requests in browser
console
TomEE10 + JDK21 : 4900 ms - 6800 ms - 2100 ms
TomEE10 + JDK17 : 9200 ms - 8400 ms - 5700 ms
TomEE 9 + JDK17 : 2700 ms - 3000 ms - 0800 ms
TomEE 9 was > 2x faster, JDK might have a small impact, 21 is faster (as
expected)
As suggested by BalusC, i did a comparison with MyFaces 4.03 from TomEE Plus by
replacing it in TomEE Plume and ran the same testcases 3x to have reliable
results:
Measured times in ms, using p:lifecycle component (skipped phases < 10 ms).The
big differences are in RESTORE_VIEW phase = 10x faster and RENDER_RESPONSE
phase = 2-3x faster
TomEE 9 / mojarra 3.0.5 (=our baseline)
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"|130 | 630 | 850 |
|"open dialog"|180| 1200 | 400 |
TomEE 10 / mojarra: 4.0.11
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"| {color:#de350b}*650* {color} | 650 | 1100 |
|"open dialog"| {color:#de350b}*750* {color} | 1200 | 400 |
TomEE 10 / myfaces: 4.0.3
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"|65| 600 | 650 |
|"open dialog"|60| 1200 | 150 |
I also did a freaky try, knowing this is experimental, unsupported etc; by
reverting namespace and related changed only, same tests as before (3x,same pc,
same db)
*TomEE 10 with mojarra 3.0.5*
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"|*{color:#de350b}700{color}*| 650| 1200|
|"open dialog"|*{color:#de350b}700{color}* | 1400| 700 |
Summary:
* TomEE 10 mojarra 4 is 2x slower than TomEE9 mojarra 3
* TomEE 10 myFaces 4 is 2-10x faster than Mojarra 4, depending on action.
* The idea that eclipselink / DB level is slower which turned out false.
I checked all server.xml, tomee.xml changes, as well as the required
application changes in dependencies, namespaces, faces-config.xml,
beans.xml persistence.xml and found no hint yet what could cause such decrease
in performance. I can confirm that mojarra 3 and mojarra 4 are (nearly) equal
in performance,
in fact "Restore view" phase is slower in 4.
On the other hand, this now means: There must be some other things in TomEE 10
that make it slower, e.g. libraries, config changes, undocumented parameters,
no-longer-in-use caches ... So further Ideas are highly welcome.
was:
We recently migrated our PrimeFaces 13 application from TomEE9 to TomEE10 and
found a massive decrease in performance (Factor 2 or more).
*Measurement* : open dedicated page, then track its 3 XHR requests in browser
console
TomEE10 + JDK21 : 4900 ms - 6800 ms - 2100 ms
TomEE10 + JDK17 : 9200 ms - 8400 ms - 5700 ms
TomEE 9 + JDK17 : 2700 ms - 3000 ms - 0800 ms
TomEE 9 was > 2x faster, JDK might have a small impact, 21 is faster (as
expected)
As suggested by BalusC, i did a comparison with MyFaces 4.03 from TomEE Plus by
replacing it in TomEE Plume and ran the same testcases 3x to have reliable
results:
Measured times in ms, using p:lifecycle component (skipped phases < 10 ms).The
big differences are in RESTORE_VIEW phase = 10x faster and RENDER_RESPONSE
phase = 2-3x faster
*TomEE 9*
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"|130 | 630 | 850 |
|"open dialog"|180| 1200 | 400 |
*TomEE 10 / mojarra: 4.0.11*
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"| {color:#de350b}*650* {color} | 650 | 1100 |
|"open dialog"| {color:#de350b}*750* {color} | 1200 | 400 |
*TomEE 10 / myfaces: 4.0.3*
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"|65| 600 | 650 |
|"open dialog"|60| 1200 | 150 |
I also did a freaky try, knowing this is experimental, unsupported etc:
*TomEE 10 with mojarra 3.0.5* (like TomEE 9) by reverting namespace and related
changed only, same tests as before (3x,same pc, same db)
|| UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
|"search"|*{color:#de350b}700{color}*| 650| 1200|
|"open dialog"|*{color:#de350b}700{color}* | 1400| 700 |
Summary:
* TomEE 10 mojarra 4 is 2x slower than TomEE9 mojarra 3
* TomEE 10 myFaces 4 is 2-10x faster than Mojarra 4, depending on action.
* The idea that eclipselink / DB level is slower which turned out false.
I checked all server.xml, tomee.xml changes, as well as the required
application changes in dependencies, namespaces, faces-config.xml,
beans.xml persistence.xml and found no hint yet what could cause such decrease
in performance. I can confirm that mojarra 3 and mojarra 4 are (nearly) equal
in performance,
in fact "Restore view" phase is slower in 4.
On the other hand, this now means: There must be some other things in TomEE 10
that make it slower, e.g. libraries, config changes, undocumented parameters,
no-longer-in-use caches ... So further Ideas are highly welcome.
> TomEE PLUME 10.1.x - Decrease in performance (Factor 2 or more).
> -----------------------------------------------------------------
>
> Key: TOMEE-4571
> URL: https://issues.apache.org/jira/browse/TOMEE-4571
> Project: TomEE
> Issue Type: Bug
> Components: TomEE Core Server
> Affects Versions: 10.1.2
> Environment: Primefaces 13.0.8, ojdbc11:21 , Oracle 19c database,
> gradle 8.7 build system. PLUME edition of TomEE because we need eclipselink
> due to native queries and DB package calls.
> TomEE 9.1.3 PLUME as-is (Mojarra Faces 3, Eclipselink 3) on OpenJDK17
> TomEE 10.1.2 PLUME as-is (Mojarra Faces 4, Eclipselink 4) on OpenJDK21
> web.xml parameters overview
> listener-class = com.sun.faces.config.ConfigureListener
> servlet-class = jakarta.faces.webapp.FacesServlet
> jakarta.faces.FACELETS_VIEW_MAPPINGS = .jsf;.xhtml
> jakarta.faces.STATE_SAVING_METHOD = server
> jakarta.faces.FACELETS_REFRESH_PERIOD = -1
> jakarta.faces.PARTIAL_STATE_SAVING = true
> jakarta.faces.FACELETS_BUFFER_SIZE = 1024000 (for fileuploads)
> jakarta.faces.FACELETS_SKIP_COMMENTS = true
> primefaces.CLIENT_SIDE_LOCALISATION = true
> Reporter: Martin A.
> Priority: Major
>
> We recently migrated our PrimeFaces 13 application from TomEE9 to TomEE10 and
> found a massive decrease in performance (Factor 2 or more).
> *Measurement* : open dedicated page, then track its 3 XHR requests in
> browser console
> TomEE10 + JDK21 : 4900 ms - 6800 ms - 2100 ms
> TomEE10 + JDK17 : 9200 ms - 8400 ms - 5700 ms
> TomEE 9 + JDK17 : 2700 ms - 3000 ms - 0800 ms
> TomEE 9 was > 2x faster, JDK might have a small impact, 21 is faster (as
> expected)
> As suggested by BalusC, i did a comparison with MyFaces 4.03 from TomEE Plus
> by replacing it in TomEE Plume and ran the same testcases 3x to have reliable
> results:
> Measured times in ms, using p:lifecycle component (skipped phases < 10
> ms).The big differences are in RESTORE_VIEW phase = 10x faster and
> RENDER_RESPONSE phase = 2-3x faster
> TomEE 9 / mojarra 3.0.5 (=our baseline)
> || UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
> |"search"|130 | 630 | 850 |
> |"open dialog"|180| 1200 | 400 |
> TomEE 10 / mojarra: 4.0.11
> || UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
> |"search"| {color:#de350b}*650* {color} | 650 | 1100 |
> |"open dialog"| {color:#de350b}*750* {color} | 1200 | 400 |
> TomEE 10 / myfaces: 4.0.3
> || UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
> |"search"|65| 600 | 650 |
> |"open dialog"|60| 1200 | 150 |
> I also did a freaky try, knowing this is experimental, unsupported etc; by
> reverting namespace and related changed only, same tests as before (3x,same
> pc, same db)
> *TomEE 10 with mojarra 3.0.5*
> || UseCase || RESTORE_VIEW || INVOKE_APPLICATION || RENDER_RESPONSE ||
> |"search"|*{color:#de350b}700{color}*| 650| 1200|
> |"open dialog"|*{color:#de350b}700{color}* | 1400| 700 |
> Summary:
> * TomEE 10 mojarra 4 is 2x slower than TomEE9 mojarra 3
> * TomEE 10 myFaces 4 is 2-10x faster than Mojarra 4, depending on action.
> * The idea that eclipselink / DB level is slower which turned out false.
>
> I checked all server.xml, tomee.xml changes, as well as the required
> application changes in dependencies, namespaces, faces-config.xml,
> beans.xml persistence.xml and found no hint yet what could cause such
> decrease in performance. I can confirm that mojarra 3 and mojarra 4 are
> (nearly) equal in performance,
> in fact "Restore view" phase is slower in 4.
> On the other hand, this now means: There must be some other things in TomEE
> 10 that make it slower, e.g. libraries, config changes, undocumented
> parameters, no-longer-in-use caches ... So further Ideas are highly welcome.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)