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
fertigungsmodulperformance [2023/04/17 15:46] – [Misc] 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>