User Tools

Site Tools


fertigungsmodulperformance

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
fertigungsmodulperformance [2023/03/23 15:01] – kalaschnikowfertigungsmodulperformance [2023/04/17 16:33] (current) – [Misc] kalaschnikow
Line 1: Line 1:
 +====== Fertigungsmodul Performance ======
 +
 +===== Problem Description =====
 +
 +Find out what is the root of the problems with "Fertigungsmodul".
 +
 +  * **-** Ask Torsten which problems they have
 +  * **-** How is it possible to see these problems?
 +
 +  * JProfiler is under "C:\Program Files\jprofiler13"
 +
 +  * Menu
 +    * Fertigung
 +      * Leitstand
 +        * Fertigungsauftrag
 +          * Netzplan (Über Menü? Kontextmenü?)
 +            * Endprodukt
 +            * Zwischenprodukte
 +  
 +  * Produktionsplanung
 +  * Beispiel-Matnum: 
 +    * .740 (und dann Pfeil-nach-unten drücken)
 +      * FB-Nr. 00126472
 +    * 1216
 +
 +  * Groovy Klassen: 
 +    * SvBoPrdNet
 +    * SvBoPrdNetImpl
 +      * setBoPrdNetPrdDocQuantityAndReloadSuc()
 +    * SvBoPrdNetImplBase
 +    * FrBoPrdNet
 +      * ''handleElementDataChanged()'' 
 +        * :946 => ''busObj = svBoPrdNet.setBoPrdNetPrdDocQuantityAndReloadSuc(busObj, boPrdNetPrdDoc, (EFCQuantity) oldval, (EFCQuantity) newval)''
 +    
 +  * ''EFCThreadUtil.doLater()'' 
 +    * -> wird zu oft aufgerufen?
 +    * auf die Methode wird gewartet 
 +      * Torsten meint so soll es auch sein, da es in einem AWT-Thread passiert/passieren soll
 +
 +
 +===== Found facts =====
 +  * JDBC calls take relatively long time:
 +    * the first 10 calls need the most time 
 +      * ca. 8 seconds with my scenario on the local DB srv07
 +      * ca. 3 minutes on the Zimmer Test-DB, if I move 5-7 entries on the screen "Leitstand Bereich VP"
 +
 +
 +===== Profilers =====
 +
 +  * [[https://www.ej-technologies.com/products/jprofiler/overview.html|JProfiler]]
 +    * [[https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html|JProfiler Help]]
 +    * [[https://www.ej-technologies.com/resources/jprofiler/help/doc/JProfiler.pdf|The definitive giude to JProfiler]] (PDF)
 +  * [[https://visualvm.github.io/|VisualVM]]
 +
 +===== TOP-Selects =====
 +
 +==== select 1 ====
 +
 +  * Ursache
 +    * ''MdMatMrpBrrRepositoryImpl.getBoFromDb()''
 +      * ''getForObj()''
 +        * ''...''
 +
 +
 +
 +===== Misc =====
 +
 +  * to debug html page "graph.html" in Chrome:
 +    * add the manual call of ''setData()''
 +      * in ''graph.html'' add the line to the bottom of JavaScript code
 +        * ''setData(...)''
 +          * where ''...'' is the JSON code copied from ''GraphView.fillGraph()'' during debugging 
 +    * find out the URL of "graph.html"
 +      * see ''GraphView.getGraphURL()''
 +    * call this URL in Chrome
 +
 +  * Maybe we can do something better if we write a better version of ''DcBomDocCompactRepositoryImpl.getMatnumMdBomDoc()'' which uses own "select" statement to select only one record from DB, instead of: <code>...
 +db = getDao(company, bomdockey, bomdocnum)
 +
 +if (db != null) {
 +  return new EFCMatNum(db.bommatnum)
 +}
 +...
 +</code>