Profiling / debug dell'applicazione JBoss AS / Seam
-
30-09-2019 - |
Domanda
Di recente ho iniziato con lo sviluppo di un'applicazione web JBoss Seam (sito di aste). Finora sono venuto molto d'accordo, ma di recente mi sono imbattuto in lunghi tempi di caricamento (in particolare sulle risorse come i file javascript / css, ma anche le pagine si sono lenti).
C'è un profiler per JBoss Seam / AS dove posso vedere quello che le classi sono in memoria, etc?
Quale potrebbe essere il motivo per i tempi di caricamento sono elevati sui file CSS / JS / immagini? Due motivi in ??via di sviluppo che non ho permesso ai filtri web-cache offerti dalla cucitura ancora. Questo sono i miei argomenti VM
-Drebel.log=true -noverify -javaagent:"C:\Program Files\ZeroTurnaround\JRebel\jrebel.jar" -Drebel.hibernate_plugin=true -Drebel.seam_plugin=true -Drebel.jboss_plugin=true -Drebel.allow_bytecode_proxy=true -Dprogram.name="JBoss 5.1 Runtime" -Djava.endorsed.dirs="C:\Java\jboss\as5.0\lib\endorsed" -Dproject.home="C:\Java\jboss\as5.0\server\default\deploy\botenveiling.war" -Xms1024m -Xmx1024m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512m -Xverify:none
Ho fatto alcune modifiche (rimosso alcune delle applicazioni di default): http: // www .jaysonjc.com / programmazione / how-to-configure-jboss-as-produzione-settings-e-tuning-tips.html
Sto usando WAR-esplodere per distribuire i miei file sul server.
Configurazione:
- JBoss Application Server 5.1
- JBoss Seam 2.2.2CR1
- JRebel
- primefaces 1.1
Sistema
- Intel Core 2 Duo E6550
- 4 GB di memoria
Soluzione
ho scritto un post sul blog, dove ho mostrato un intercettore in grado di misurare ogni chiamata di metodo che i componenti in uso.
In questo modo puoi vedere quali metodi di uso da tempo, e in grado di trovare bug nel codice. Date un'occhiata qui e scorrere verso il basso per il secondo esempio.
Si otterrà un output simile a questo:
284.94 ms 1 FooBean.getRandomDroplets()
284.56 ms 1 GahBean.getRandomDroplets()
201.60 ms 2 SohBean.searchRatedDoodlesWithinHead()
185.94 ms 1 FroBean.doSearchPopular()
157.63 ms 1 FroBean.doSearchRecent()
42.34 ms 1 FooBean.fetchMostRecentYodel()
41.94 ms 1 GahBean.getMostRecentYodel()
15.89 ms 1 FooBean.getNoOfYodels()
15.00 ms 1 GahBean.getNoOfYodels()
9.14 ms 1 SohBean.mainYodels()
1.11 ms 2 SohBean.trackHoorayEvent()
0.32 ms 1 FroBean.reset()
0.22 ms 43 NohBean.thumbPicture()
0.03 ms 18 FooBean.getMostRecentYodels()
0.01 ms 1 NohBean.profilePicture()
0.01 ms 1 FroBean.setToDefault()
0.01 ms 1 FroBean.getRecentMarker()
In secondo luogo, c'è una pagina profilatura sul Seam base di conoscenze , ma non è che il bene davvero .
Dan Allen ha anche scritto un post bel due parti su accelerare l'applicazione tuo JSF, che è una lettura vale la pena.
Un Firebug come strumento è anche un must per JavaScript / AJAX prestazioni utensili