Ankündigung

Einklappen
Keine Ankündigung bisher.

Code Umstellung zur Performance-Optimierung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Zitat von Chris M. Beitrag anzeigen
    Aktuellste CometVisu/CometVisu:develop Version?
    die Version, die mit svn update kommt (aus github). v5130.

    Zitat von Chris M. Beitrag anzeigen
    Auch mit der demo-Config?
    Auch mit forceReload=true?
    (Bei mir mag das...)
    In der Demo-Config gibt es m.W. keine Switches, in denen Mappings benutzt werden, die wiederum auf Icons verweisen. Wohlgemerkt: nicht alle Icons fehlen bei mir, nur solche, die auf Switches (und manche Triggers) per mapping abgebildet sein sollten.

    forceReload=true bringt es nicht. Downgrade auf v5099 schon.

    Zitat von Chris M. Beitrag anzeigen
    Hast Du mal an die URL ein profile angehängt? Was kommen da für Zeilen im Log?
    Wie geht das?

    Zitat von Chris M. Beitrag anzeigen
    Grundsätzlich sollte es da keinen Grund geben, dass die neu geladen wird.
    Oder ist das, weil das Gerät in einen Suspend gegangen ist?
    Macht sie ja nicht immer. Nur manchmal. (ich habe hier so diverse Androiden, die machen was sie wollen, vermutlich senden sie lieber Fotos meines Hauses nach Mountain View als die CometVisu zu behalten.

    VG, Fry

    Kommentar


      #47
      Hier eine Minimal-Config zum Nachvollziehen des Icon-Problems:

      Code:
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
       <pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lib_version="8" design="metal" xsi:noNamespaceSchemaLocation="../../visu_config.xsd" max_mobile_screen_wid\
      th="480" scroll_speed="0" default_columns="12" enable_column_adjustment="false">
       <meta>
       <mappings>
       <mapping name="Off_On_Light">
       <entry value="0"><icon name="light_light" flavour="sodium"/></entry>
       <entry value="1"><icon name="light_light_dim_100" flavour="sodium" color="yellow"/></entry>
       <entry value="2"><icon name="light_light" flavour="sodium" color="green"/></entry>
       </mapping>
       </mappings>
       </meta>
       <page name="Test">
       <switch align="center" mapping="Off_On_Light"><layout colspan="1" />
       <address mode="read" transform="DPT:1.001">1/3/7</address>
       <address mode="write" transform="DPT:1.001">1/2/7</address>
       </switch>
       </page>
       </pages>

      Kommentar


        #48
        Zitat von Fry Beitrag anzeigen
        die Version, die mit svn update kommt (aus github). v5130.
        Das ist bisschen das Problem wenn einer mit Git und der andere mit SVN arbeitet. Da kommen diese Definitionsprobleme auf
        Egal, wenn's die neueste Version ist, dann wird's schon passen.
        Zitat von Fry Beitrag anzeigen
        [Profiling] Wie geht das?
        Ganz simpel: Konsole im Browser öffnen (Strg+Shift+I) und dann einfach profile an die URL hängen, also gibt's dann eine URL ähnlich wie http://wiregate/visu_git/?config=demo&profile
        Zitat von Fry Beitrag anzeigen
        Hier eine Minimal-Config zum Nachvollziehen des Icon-Problems:[...]
        Sehr gut. Ist jetzt im aktuellsten develop gefixt.

        Kurzer Nachtrag 1: in der neuesten Version ist ein Bug, da werden manche Elemente abgeschnitten. Ich bin gerade dran.
        Kurzer Nachtrag 2: Bug fix ist jetzt drinnen (commit e134b5c23eb5bf614a6792067231b9cea38924bc)
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #49
          Danke!

          Neueste Version v14252:

          Code:
          "### Profile ###: 93,882542 (- ms): JavaScript start" visu:48
          "Kein Touch Support" jquery.ui.touch-punch.js:21
          "### Profile ###: 1669,357874 (1575.475331444161 ms): templateEngine start" visu:48
          "### Profile ###: 1774,718164 (105.36029004235502 ms): parseXML" visu:48
          "### Profile ###: 1954,220482 (179.50231812969992 ms): setup_page start" visu:48
          "### Profile ###: 2458,751661 (504.53117867340234 ms): setup_page start" visu:48
          "### Profile ###: 2515,196139 (56.4444787653847 ms): setup_page start" visu:48
          "### Profile ###: 2515,257233 (0.06109344560127283 ms): setup_page running" visu:48
          "### Profile ###: 6270,989020 (3755.7317870663705 ms): setup_page created pages" visu:48
          "### Profile ###: 7577,858953 (1306.8699335205574 ms): setup_page finish" visu:48
          nicht wohlgeformt l:1
          "### Profile ###: 8615,604439 (1037.7454856831173 ms): firstdata start" visu:48
          "### Profile ###: 13014,670247 (4399.065807904612 ms): firstdata updated"
          Demgegenüber SVN r2538 (mit der "alles anfing"):

          Code:
          "### Profile ###: 2180,735428 (2039.9604896468607 ms): templateEngine start" visu:48
          "### Profile ###: 2273,628745 (92.893317159047 ms): parseXML" visu:48
          "### Profile ###: 2450,875005 (177.2462593705127 ms): setup_page start" visu:48
          "### Profile ###: 3309,738882 (858.8638769607328 ms): setup_page start" visu:48
          "### Profile ###: 3479,741413 (170.00253171238592 ms): setup_page start" visu:48
          "### Profile ###: 3479,792243 (0.050829746740873816 ms): setup_page running" visu:48
          "### Profile ###: 7151,985830 (3672.1935870454517 ms): setup_page created pages" visu:48
          "### Profile ###: 8446,963069 (1294.9772390259077 ms): setup_page finish" visu:48
          nicht wohlgeformt l:1
          "### Profile ###: 9583,110057 (1136.1469878976332 ms): firstdata start" visu:48
          "### Profile ###: 14047,345954 (4464.235896944643 ms): firstdata updated"
          Also 1s schneller. Immerhin.

          VG, Fry

          Kommentar


            #50
            ...wobei ich anfügen muss, das Thema mit der Geschwindigkeit habe ich ja gar nicht auf dem Desktop (wo ich diese Profiling-Werte gewonnen habe), sondern auf einigen etwas schwachbrüstigen Androids...
            Fry

            Kommentar


              #51
              Und für die mobilen gibt's auch einen Trick, vgl. https://knx-user-forum.de/cometvisu/...rformance.html
              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

              Kommentar


                #52
                Ok, jetzt hab ich die Statusbar-XML eingefügt und rufe die Visue mit ...?profile auf, aber sehe keine Statusbar unten auf den Seiten (auf dem PC). Was mach ich falsch?

                Einfügt wurde:
                Code:
                 <statusbar>
                 <a href="javascript: profileCV('list')">Show Profile</a>
                 </statusbar>

                Kommentar


                  #53
                  Zitat von Fry Beitrag anzeigen
                  Ok, jetzt hab ich die Statusbar-XML eingefügt und rufe die Visue mit ...?profile auf, aber sehe keine Statusbar unten auf den Seiten (auf dem PC). Was mach ich falsch?
                  Die Statusbar wird bei Mobilgeräten deaktiviert. Weiss zwar grad nicht, wie die auch bei "mobile" aktiviert werden kann... aber als kleinen Workaround kannst Du die Seite als "desktop" laden... einfach "&forceDevice=desktop" an die URL dranhängen.

                  Kommentar


                    #54
                    Und - wenn ich mich nicht irre - müsstest Du das auch in ein text-Widget schreiben können
                    (Ungetestet. Und ich weiß auch gerade nicht ob 0x, 1x oder 2x escapet werden muss)
                    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                    Kommentar


                      #55
                      Ich habe jetzt auch noch mal profileCV laufen lassen. Getestet habe ich die alte visu_svn (rev 2339) gegen das aktuelle git:develop von vor wenigen Minuten (svn rev 15063).
                      Vorgehensweise war zunächst ein Leeren des Browser Cache. Nach vollständigem Laden der Visu habe ich dann die Visu erneut geladen (F5). Danach habe ich erst profileCV('list') aufgerufen. Da es hierbei eine gewisse Streuung gibt, habe ich das Ganze jeweils zweimal durchgeführt.

                      Auf den ersten Blick ist in jedem Fall eine deutliche Verbesserung im Bereich "setup_page created pages" und "firstdata updated" zu sehen. Die übrigen Werte unterliegen wohl eher einer nicht signifikanten Streuung.

                      visu_svn (rev 2339):
                      "71.78873292555339 (- ms): JavaScript start
                      352.49899079352264 (280.71025786796923 ms): templateEngine start
                      380.77912136877734 (28.280130575254702 ms): parseXML
                      411.54308718007456 (30.763965811297226 ms): setup_page start
                      651.4730224092727 (239.92993522919818 ms): setup_page start
                      740.9313194833421 (89.45829707406938 ms): setup_page start
                      741.0092623503825 (0.07794286704040587 ms): setup_page running
                      2030.5639403890718 (1289.5546780386894 ms): setup_page created pages
                      2381.9745246951775 (351.41058430610565 ms): setup_page finish
                      3473.8537998544507 (1091.8792751592732 ms): firstdata start
                      5540.153287638513 (2066.299487784062 ms): firstdata updated
                      "

                      "94.99866603157663 (- ms): JavaScript start
                      305.50530863559476 (210.5066426040181 ms): templateEngine start
                      336.39498874857 (30.889680112975213 ms): parseXML
                      363.9049097022107 (27.509920953640744 ms): setup_page start
                      568.980694473739 (205.07578477152833 ms): setup_page start
                      602.938921008117 (33.9582265343779 ms): setup_page start
                      603.0121146682051 (0.07319366008812267 ms): setup_page running
                      1875.1779904987925 (1272.1658758305875 ms): setup_page created pages
                      2279.982232378696 (404.80424187990366 ms): setup_page finish
                      3321.79648530749 (1041.8142529287938 ms): firstdata start
                      5065.141240017935 (1743.3447547104452 ms): firstdata updated
                      "

                      visu_dev (git develop, svn rev 15063):
                      "50.50278736543331 (- ms): JavaScript start
                      396.04810108547315 (345.5453137200398 ms): templateEngine start
                      427.1040034417782 (31.05590235630507 ms): parseXML
                      493.3280626448334 (66.22405920305516 ms): setup_page start
                      728.6227718886059 (235.29470924377256 ms): setup_page start
                      791.005281397496 (62.38250950889005 ms): setup_page start
                      791.0656242623015 (0.06034286480553419 ms): setup_page running
                      1540.3315225817805 (749.265898319479 ms): setup_page created pages
                      1983.7158074559754 (443.3842848741949 ms): setup_page finish
                      3434.116347189378 (1450.4005397334024 ms): firstdata start
                      3974.372161825036 (540.2558146356582 ms): firstdata updated
                      "

                      "105.11866731665617 (- ms): JavaScript start
                      377.83098131187063 (272.71231399521446 ms): templateEngine start
                      411.0592268011717 (33.22824548930106 ms): parseXML
                      471.66637100525344 (60.60714420408175 ms): setup_page start
                      745.1000057269848 (273.4336347217314 ms): setup_page start
                      845.3526914733577 (100.25268574637289 ms): setup_page start
                      845.4275613241348 (0.07486985077707686 ms): setup_page running
                      1613.6592779249877 (768.2317166008529 ms): setup_page created pages
                      2091.525040193656 (477.8657622686683 ms): setup_page finish
                      3069.795742196285 (978.2707020026292 ms): firstdata start
                      3546.7194852977127 (476.9237431014276 ms): firstdata updated
                      "

                      Kommentar


                        #56
                        Zitat von XueSheng Beitrag anzeigen
                        Auf den ersten Blick ist in jedem Fall eine deutliche Verbesserung im Bereich "setup_page created pages" und "firstdata updated" zu sehen. Die übrigen Werte unterliegen wohl eher einer nicht signifikanten Streuung.
                        Sehr schön - und genau so, wie ich's erwartet habe
                        (Außer bei "firstdata updated" - da hatte ich noch nicht drauf gezielt. Und folglich auch nicht analysiert, was da länger dauern könnte. Evtl. ein positiver Seiteneffekt des umgestellten Update-Handlings)
                        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                        Kommentar


                          #57
                          Ich hab gerade noch eine Kleinigkeit eingecheckt, die hoffentlich bei Configs, die viele Groups verwenden, einen Performance-Unterschied macht.
                          TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                          Kommentar


                            #58
                            Ich habe heute auch mal einen Test gemacht mit der rev 15097:

                            Code:
                            ### Profile ###: 89.097999999467 (- ms): JavaScript start
                            ### Profile ###: 267.582999999831 (178.48500000036438 ms): templateEngine start
                            ### Profile ###: 545.170000000326 (277.5870000004943 ms): parseXML
                            ### Profile ###: 591.945000000123 (46.77499999979773 ms): setup_page start
                            ### Profile ###: 625.748999999814 (33.80399999969086 ms): setup_page start
                            ### Profile ###: 634.262999999919 (8.514000000104716 ms): setup_page start
                            ### Profile ###: 634.568999999829 (0.3059999999095453 ms): setup_page running
                            ### Profile ###: 955.498999999691 (320.92999999986205 ms): setup_page created pages
                            ### Profile ###: 1209.05299999959 (253.5539999998946 ms): setup_page finish
                            ### Profile ###: 15465.0279999996 (14255.975000000035 ms): firstdata start
                            ### Profile ###: 15593.5330000002 (128.50500000058673 ms): firstdata updated	
                            
                            ### Profile ###: 93.0209999996805 (- ms): JavaScript start
                            ### Profile ###: 266.507000000274 (173.48600000059378 ms): templateEngine start
                            ### Profile ###: 548.555000000306 (282.0480000000316 ms): parseXML
                            ### Profile ###: 622.449999999844 (73.89499999953841 ms): setup_page start
                            ### Profile ###: 656.791999999768 (34.341999999924155 ms): setup_page start
                            ### Profile ###: 677.735000000212 (20.943000000443135 ms): setup_page start
                            ### Profile ###: 678.27699999998 (0.5419999997684499 ms): setup_page running
                            ### Profile ###: 995.828999999503 (317.5519999995231 ms): setup_page created pages
                            ### Profile ###: 1224.74700000021 (228.9180000007036 ms): setup_page finish
                            ### Profile ###: 15078.9560000003 (13854.209000000083 ms): firstdata start
                            ### Profile ###: 15202.3090000002 (123.35299999995186 ms): firstdata updated
                            Hier zum Vergleich nochmal vom 20.01.2015
                            Code:
                             ### Profile ###: 50.5700000003344 (- ms): JavaScript start
                             ### Profile ###: 231.839000000036 (181.26899999970192 ms): templateEngine start
                             ### Profile ###: 513.244000000668 (281.40500000063184 ms): parseXML
                             ### Profile ###: 536.549000000377 (23.304999999709253 ms): setup_page start
                             ### Profile ###: 573.15700000072 (36.608000000342145 ms): setup_page start
                             ### Profile ###: 582.55200000076 (9.395000000040454 ms): setup_page start
                             ### Profile ###: 582.910000000084 (0.35799999932351056 ms): setup_page running
                             ### Profile ###: 1189.52500000069 (606.6150000006019 ms): setup_page created pages
                             ### Profile ###: 1376.79200000002 (187.2669999993377 ms): setup_page finish
                             ### Profile ###: 22664.9670000006 (21288.175000000592 ms): firstdata start
                             ### Profile ###: 22964.0660000005 (299.0989999998419 ms): firstdata updated
                            Die Ergebnisse sind also ähnlich wie bei XueSheng. Es geht also in die richtige Richtung, danke schonmal!!

                            VG
                            Micha

                            Kommentar


                              #59
                              So, jetzt sind die letzten(?) Änderungen des Textify in CometVisu/CometVisu:develop gelandet.

                              Dabei hatte ich auch ein paar Dinge (insb. Plugins) angepasst, die ich nicht aktiv getestet habe => hohe Wahrscheinlichkeit, dass ich wieder etwas kaputt gemacht habe

                              => Bitte testen!
                              => Bitte auch die Performance vergleichen

                              Und da das ganze im Code Rumgerühre nun hoffentlich fertig ist (von nun kommenden Bugfixes abgesehen - aber die sind nur lokal), sollte nun jeder die Chance haben nach Performance-Bottlenecks zu suchen und zu beheben
                              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                              Kommentar


                                #60
                                Zitat von Chris M. Beitrag anzeigen
                                hohe Wahrscheinlichkeit, dass ich wieder etwas kaputt gemacht habe
                                In der Tat ;-)

                                Die Demo-Config funktioniert, aber meine Config nicht: die wird einfach nicht geladen, die "Loading"-Meldung verschwindet zwar und der Hintergrund des Designs (getestet mit Metal, Pure) wird angezeigt - aber es werden keine Elemente angezeigt. Folgende (mir nichtssagende) Fehlermeldungen gibts in der Console:

                                Chromium 41.0
                                Code:
                                 Document was loaded from Application Cache with manifest http://wiregate302/visu.git/cometvisu.appcache
                                ?forceReload=true:1 Application Cache Checking event
                                ?forceReload=true:1 Application Cache NoUpdate event
                                jquery.ui.touch-punch.js?_=1424555860569:21 Kein Touch Support
                                structure_plugin.js?_=1424555860569:109 Uncaught TypeError: Cannot read property '1' of nullstructure_plugin.js?_=1424555860569:109 createDiagramstructure_plugin.js?_=1424555860569:81 VisuDesign_Custom.addCreator.createtemplateengine.js?_=1424555860569:1263 create_pagesgroup.js?_=1424555860569:40 (anonymous function)jquery.js?_=1424555860569:611 jQuery.extend.eachjquery.js?_=1424555860569:241 jQuery.fn.jQuery.eachgroup.js?_=1424555860569:39 design.basicdesign.addCreator.createtemplateengine.js?_=1424555860569:1263 create_pagesgroup.js?_=1424555860569:40 (anonymous function)jquery.js?_=1424555860569:611 jQuery.extend.eachjquery.js?_=1424555860569:241 jQuery.fn.jQuery.eachgroup.js?_=1424555860569:39 design.basicdesign.addCreator.createtemplateengine.js?_=1424555860569:1263 create_pagespage.js?_=1424555860569:158 (anonymous function)jquery.js?_=1424555860569:611 jQuery.extend.eachjquery.js?_=1424555860569:241 jQuery.fn.jQuery.eachpage.js?_=1424555860569:157 design.basicdesign.addCreator.createtemplateengine.js?_=1424555860569:1263 create_pagespage.js?_=1424555860569:158 (anonymous function)jquery.js?_=1424555860569:611 jQuery.extend.eachjquery.js?_=1424555860569:241 jQuery.fn.jQuery.eachpage.js?_=1424555860569:157 design.basicdesign.addCreator.createtemplateengine.js?_=1424555860569:1263 create_pagestemplateengine.js?_=1424555860569:1124 setup_pagetemplateengine.js?_=1424555860569:195 (anonymous function)require-2.1.15.min.js:29 i.execCbrequire-2.1.15.min.js:18 Z.checkrequire-2.1.15.min.js:23 (anonymous function)require-2.1.15.min.js:8 crequire-2.1.15.min.js:23 (anonymous function)require-2.1.15.min.js:7 vrequire-2.1.15.min.js:23 Z.emitrequire-2.1.15.min.js:19 Z.checkrequire-2.1.15.min.js:23 (anonymous function)require-2.1.15.min.js:8 crequire-2.1.15.min.js:23 (anonymous function)require-2.1.15.min.js:7 vrequire-2.1.15.min.js:23 Z.emitrequire-2.1.15.min.js:19 Z.checkrequire-2.1.15.min.js:23 Z.enablerequire-2.1.15.min.js:17 Z.initrequire-2.1.15.min.js:14 Erequire-2.1.15.min.js:28 i.completeLoadrequire-2.1.15.min.js:29 i.onScriptLoad

                                FF 31.4
                                Code:
                                Use of getUserData() or setUserData() is deprecated.  Use WeakMap or element.dataset instead. requestNotifier.js:53
                                "Kein Touch Support" jquery.ui.touch-punch.js:21
                                TypeError: ret_val.match(...) is null structure_plugin.js:109
                                Use of getPreventDefault() is deprecated.  Use defaultPrevented instead. jquery.js:3255
                                TypeError: page is null pagepartshandler.js:83
                                VG
                                Micha

                                Kommentar

                                Lädt...
                                X